Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method of transmitting broadcast signals and method of receiving broadcast signals

ABSTRACT

A method of providing a broadcast service, the method includes generating service data for a broadcast service and Service Layer Signaling (SLS) for signaling the broadcast service; generating a signaling table having information used for indicating a transport session carrying the SLS for the broadcast service; and transmitting the service data, the SLS and the signaling table via a broadcast network, wherein the SLS includes a Service-based Transport Session Instance Description (S-TSID) and a Media Presentation Description (MPD), wherein the S-TSID includes information for indicating transport sessions carrying service components and content items for the broadcast service, the MPD includes a period element having an event stream element, the event stream element includes a plurality of event elements, and each of the event elements includes an event ID for an event and timing information for indicating start time of the event.

CROSS-REFERENCE TO RELATED APPLICATIONS

This Application is a Continuation of co-pending U.S. patent applicationSer. No. 15/056,343 filed on Feb. 29, 2016, which claims the benefitunder 35 U.S.C. § 119(e) to U.S. Provisional Application Nos. 62/144,311filed on Apr. 7, 2015 and 62/126,693 filed on Mar. 1, 2015, all of whichare hereby expressly incorporated by reference into the presentapplication.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates to an apparatus for transmitting broadcastsignals, an apparatus for receiving broadcast signals, a method oftransmitting broadcast signals, and a method of receiving broadcastsignals.

Discussion of the Related Art

As analog broadcast signal transmission comes to an end, varioustechnologies for transmitting/receiving digital broadcast signals havebeen developed. A digital broadcast signal may include a larger amountof video/audio data than an analog broadcast signal and further includevarious types of additional data in addition to the video/audio data.

SUMMARY OF THE INVENTION

Accordingly, the present invention is directed to an apparatus fortransmitting broadcast signals and an apparatus for receiving broadcastsignals for future broadcast services and methods for transmitting andreceiving broadcast signals for future broadcast services.

That is, a digital broadcast system can provide high definition (HD)images, multi-channel audio and various additional services. However,data transmission efficiency for transmission of large amounts of data,robustness of transmission/reception networks and network flexibility inconsideration of mobile reception equipment need to be improved fordigital broadcast.

According to an object of the present invention, as included herein andbriefly described, the present invention proposes a system foreffectively supporting a next-generation broadcast service in anenvironment that supports next-generation hybrid broadcast using aterrestrial broadcast network and an Internet protocol (IP) network, anda related signaling scheme.

The present invention proposes a method of efficiently providing hybridbroadcast using both a broadcast network and an IP network.

The present invention proposes a method of providing application-basedenhancement based on an application for a basic broadcast service.

The present invention proposes a method of providing application-basedenhancement in synchronization with a broadcast service.

The present invention proposes architecture according to variousprotocols between a primary device (PD) and a companion device (CD), anda communication scheme between applications.

The present invention proposes architecture and a signaling scheme foreffectively delivering information about an electronic service guide(ESG), an emergency alert system (EAS), etc. from a PD side to a CDside.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are included to provide a furtherunderstanding of the invention, illustrate embodiments of the inventionand together with the description serve to explain the principle of theinvention.

FIG. 1 illustrates a receiver protocol stack according to an embodimentof the present invention.

FIG. 2 illustrates a relation between the SLT and SLS according to anembodiment of the present invention.

FIG. 3 illustrates an SLT according to an embodiment of the presentinvention.

FIG. 4 illustrates SLS bootstrapping and a service discovery processaccording to an embodiment of the present invention.

FIG. 5 illustrates a USBD fragment for ROUTE/DASH according to anembodiment of the present invention.

FIG. 6 illustrates an S-TSID fragment for ROUTE/DASH according to anembodiment of the present invention.

FIG. 7 illustrates a USBD/USD fragment for MMT according to anembodiment of the present invention.

FIG. 8 illustrates a link layer protocol architecture according to anembodiment of the present invention.

FIG. 9 illustrates a structure of a base header of a link layer packetaccording to an embodiment of the present invention. Hereinafter, thestructure of the header will be described.

FIG. 10 illustrates a structure of an additional header of a link layerpacket according to an embodiment of the present invention.

FIG. 11 illustrates a structure of an additional header of a link layerpacket according to another embodiment of the present invention.

FIG. 12 illustrates a header structure of a link layer packet for anMPEG-2 TS packet and an encapsulation process thereof according to anembodiment of the present invention.

FIG. 13 illustrates an example of adaptation modes in IP headercompression according to an embodiment of the present invention(transmitting side).

FIG. 14 illustrates a link mapping table (LMT) and an RoHC-U descriptiontable according to an embodiment of the present invention.

FIG. 15 illustrates a structure of a link layer on a transmitter sideaccording to an embodiment of the present invention.

FIG. 16 illustrates a structure of a link layer on a receiver sideaccording to an embodiment of the present invention.

FIG. 17 illustrates a configuration of signaling transmission through alink layer according to an embodiment of the present invention(transmitting/receiving sides).

FIG. 18 is a block diagram illustrating a configuration of a broadcastsignal transmission apparatus for future broadcast services according toan embodiment of the present invention.

FIG. 19 is a block diagram illustrating a bit interleaved coding &modulation (BICM) block according to an embodiment of the presentinvention.

FIG. 20 is a block diagram illustrating a BICM block according toanother embodiment of the present invention.

FIG. 21 is a diagram illustrating a bit interleaving process of physicallayer signalling (PLS) according to an embodiment of the presentinvention.

FIG. 22 is a block diagram illustrating a configuration of a broadcastsignal reception apparatus for future broadcast services according to anembodiment of the present invention.

FIG. 23 is a diagram illustrating a signaling hierarchy structure of aframe according to an embodiment of the present invention.

FIG. 24 is a table illustrating PLS1 data according to an embodiment ofthe present invention.

FIG. 25 is a table illustrating PLS2 data according to an embodiment ofthe present invention.

FIG. 26 is a table illustrating PLS2 data according to anotherembodiment of the present invention.

FIG. 27 is a diagram illustrating a logical structure of a frameaccording to an embodiment of the present invention.

FIG. 28 is a diagram illustrating PLS mapping according to an embodimentof the present invention.

FIG. 29 is a diagram illustrating time interleaving according to anembodiment of the present invention.

FIG. 30 is a diagram illustrating a basic operation of a twistedrow-column block interleaver according to an embodiment of the presentinvention.

FIG. 31 is a diagram illustrating an operation of a twisted row-columnblock interleaver according to another embodiment of the presentinvention.

FIG. 32 is a block diagram illustrating an interlaving address generatorincluding a main pseudo-random binary sequence (PRBS) generator and asub-PRBS generator according to each FFT mode according to an embodimentof the present invention.

FIG. 33 is a diagram illustrating a main PRBS used for all FFT modesaccording to an embodiment of the present invention.

FIG. 34 is a diagram illustrating a sub-PRBS used for FFT modes and aninterleaving address for frequency interleaving according to anembodiment of the present invention.

FIG. 35 is a diagram illustrating a write operation of a timeinterleaver according to an embodiment of the present invention.

FIG. 36 is a table illustrating an interleaving type applied accordingto the number of PLPs.

FIG. 37 is a block diagram including a first example of a structure of ahybrid time interleaver.

FIG. 38 is a block diagram including a second example of the structureof the hybrid time interleaver.

FIG. 39 is a block diagram including a first example of a structure of ahybrid time deinterleaver.

FIG. 40 is a block diagram including a second example of the structureof the hybrid time deinterleaver.

FIG. 41 illustrates an application-related broadcast service accordingto an embodiment of the present invention.

FIG. 42 illustrates a part of an ApplicationList element according to anembodiment of the present invention.

FIG. 43 illustrates another part of the ApplicationList elementaccording to an embodiment of the present invention.

FIG. 44 illustrates an event message table (EMT) according to anembodiment of the present invention.

FIG. 45 illustrates a method of providing the broadcast service by atransmitting side according to an embodiment of the present invention.

FIG. 46 illustrates an apparatus for providing the broadcast service bythe transmitting side according to an embodiment of the presentinvention.

FIG. 47 illustrates an AST transmitted through a broadcast networkaccording to an embodiment of the present invention.

FIG. 48 illustrates an AST transmitted through a broadband networkaccording to an embodiment of the present invention.

FIG. 49 illustrates an event transmitted in the form of an EventStreamelement through the broadcast network according to an embodiment of thepresent invention.

FIG. 50 illustrates an event transmitted in the form of an emsg boxthrough the broadcast network according to an embodiment of the presentinvention.

FIG. 51 illustrates an event transmitted in the form of an EventStreamelement through the broadband network according to an embodiment of thepresent invention.

FIG. 52 illustrates an event transmitted in the form of an emsg boxthrough the broadband network according to an embodiment of the presentinvention.

FIG. 53 illustrates an API and an event listener according to anembodiment of the present invention.

FIG. 54 is a block diagram of an electronic device according to anembodiment of the present invention.

FIG. 55 is a diagram for description of connection of a first clientaccording to an embodiment of the present invention.

FIG. 56 is a diagram for description of connection of a second clientaccording to an embodiment of the present invention.

FIG. 57 is a diagram for description of connection between the first andsecond clients according to an embodiment of the present invention.

FIG. 58 is a diagram for description of an additional connection requestaccording to an embodiment of the present invention.

FIG. 59 is a diagram for description of connection between clients whenan IP address is not present according to an embodiment of the presentinvention.

FIG. 60 is a diagram for description of standby connection forconnection between applications according to an embodiment of thepresent invention.

FIG. 61 is a diagram for description of a new connection request forconnection with a second client according to an embodiment of thepresent invention.

FIG. 62 is a diagram for description of setting of a first client whenan IP address is included according to an embodiment of the presentinvention.

FIG. 63 is a diagram for description of setting of a first client and asecond client when IP addresses are included according to an embodimentof the present invention.

FIG. 64 is a diagram for description of an embodiment of connection to aplurality of second clients when IP addresses are included.

FIG. 65 is a flowchart of a method of controlling an electronic deviceaccording to an embodiment of the present invention.

FIG. 66 is a diagram illustrating configurations of a main physicaldevice and a companion physical device according to an embodiment of thepresent invention.

FIG. 67 is a diagram illustrating a protocol stack for supporting ahybrid broadcast service according to an embodiment of the presentinvention.

FIG. 68 is a diagram illustrating an action mechanism of a UPnP schemeaccording to an embodiment of the present invention.

FIG. 69 is a diagram illustrating a REST mechanism according to anembodiment of the present invention.

FIG. 70 is a diagram illustrating a service that enables a broadcastreceiver and companion devices to exchange an electronic service guide(ESG).

FIG. 71 is a diagram illustrating an ESGData state variable according toan embodiment of the present invention.

FIG. 72 is a diagram illustrating an ESGData state variable according toanother embodiment of the present invention.

FIG. 73 is a diagram illustrating a process of delivering an ESGDatastate variable to a companion device using the event scheme according toan embodiment of the present invention.

FIG. 74 is a diagram illustrating a LastChangedESGData state variableaccording to an embodiment of the present invention.

FIG. 75 is a diagram illustrating a process in which ESG data isdelivered to a companion device according to a GetESGData actionaccording to an embodiment of the present invention.

FIG. 76 is a diagram illustrating a process of delivering ESG data to acompanion device according to GetServiceIds and GetESGbyServiceIdsactions according to an embodiment of the present invention.

FIG. 77 is a diagram illustrating a process of delivering ESG data to acompanion device according to a GetCurrentServiceId action according toan embodiment of the present invention.

FIG. 78 is a diagram illustrating a process in which ESG data isdelivered to a companion device according to a SearchESG actionaccording to an embodiment of the present invention.

FIG. 79 is a diagram illustrating an authentication process fordelivering ESG data according to a DoAuthenticationForESG actionaccording to an embodiment of the present invention.

FIG. 80 is a diagram illustrating a process of delivering ESG data to acompanion device simultaneously with device authentication according toGetServiceIds and GetESGbyServiceIds actions according to anotherembodiment of the present invention.

FIG. 81 is a diagram illustrating a process of delivering ESG data to acompanion device according to a GetService action according to anembodiment of the present invention.

FIG. 82 is a diagram illustrating a process of changing a service of abroadcast receiver by a companion device according to a SetChangeChannelaction according to an embodiment of the present invention.

FIG. 83 is a diagram illustrating a method of providing a broadcastservice according to an embodiment of the present invention.

FIG. 84 is a diagram illustrating a broadcast receiver according to anembodiment of the present invention.

FIG. 85 is a diagram illustrating a UPnP-based PD-CD architectureaccording to an embodiment of the present invention.

FIG. 86 is a diagram illustrating a UPnP-based PD-CD architectureaccording to an embodiment of the present invention.

FIG. 87 is a diagram illustrating a UPnP-based PD-CD architectureaccording to another embodiment of the present invention.

FIG. 88 illustrates interaction diagrams of a UPnP-based PD-CDarchitecture according to an embodiment of the present invention.

FIG. 89 is a diagram illustrating a Websocket-based PD-CD architectureaccording to an embodiment of the present invention.

FIG. 90 is a diagram illustrating a Websocket-based PD-CD architectureaccording to an embodiment of the present invention.

FIG. 91 is a diagram illustrating a Websocket-based PD-CD architectureaccording to an embodiment of the present invention.

FIG. 92 is a diagram illustrating app-to-app communication in aWebsocket-based PD-CD architecture according to an embodiment of thepresent invention.

FIG. 93 is a diagram illustrating an HTTP-based PD-CD architectureaccording to an embodiment of the present invention.

FIG. 94 is a diagram illustrating an HTTP-based PD-CD architectureaccording to another embodiment of present invention.

FIG. 95 is a diagram illustrating a Websocket & HTTP-based PD-CDarchitecture according to an embodiment of the present invention.

FIG. 96 is a diagram illustrating formats of messages used for discoveryof a Primary Device (PD).

FIG. 97 is a diagram illustrating the discovery procedure of a Websocketendpoint or an HTTP service URL using a Device Description Document(DDD).

FIG. 98 illustrates a DDD request message and a DDD format in thediscovery procedure of a Websocket endpoint or an HTTP service URL usingthe DDD according to an embodiment of the present invention.

FIG. 99 illustrates the format of a DDD in the discovery procedure for aWebsocket endpoint or an HTTP service URL using the DDD according to anembodiment of the present invention.

FIG. 100 illustrates the format of a DDD in the discovery procedure of aWebsocket endpoint or an HTTP service URL using the DDD according toanother embodiment of the present invention.

FIG. 101 illustrates a discovery procedure for a Websocket endpoint oran HTTP service URL using a response header for a DDD request accordingto an embodiment of the present invention.

FIG. 102 illustrates the format of a response header in a discoveryprocedure of a Websocket endpoint or an HTTP service URL using aresponse header for a DDD request according to another embodiment of thepresent invention.

FIG. 103 illustrates a discovery procedure of a Websocket endpoint or anHTTP service URL using a URL of a response header for a DDD requestaccording to an embodiment of the present invention.

FIG. 104 is a diagram illustrating formats of a GET request and aresponse message according to the request in a discovery procedure for aWebsocket endpoint or an HTTP service URL using a URL of a responseheader for a DDD request according to an embodiment of the presentinvention.

FIG. 105 is a diagram illustrating the format of a response message fordelivering address information in a discovery procedure for a Websocketendpoint or an HTTP service URL using a URL of a response header for aDDD request according to another embodiment of the present invention.

FIG. 106 is a diagram illustrating a Websocket-based handshake &connection procedure according to an embodiment of the present invention(after discovery).

FIG. 107 is a diagram illustrating a handshake & connection procedurefor Websocket-based app-to-app communication according to an embodimentof the present invention (after discovery).

FIG. 108 is a diagram illustrating a Websocket-based 2-way communicationprocedure according to an embodiment of the present invention (afterconnection).

FIG. 109 is a diagram illustrating a Websocket-based app to app 2-waycommunication procedure according to an embodiment of the presentinvention (after connection/CD to PD).

FIG. 110 is a diagram illustrating a Websocket-based app to app 2-waycommunication procedure according to an embodiment of the presentinvention (after connection/PD to CD).

FIG. 111 is a diagram illustrating an HTTP-based Request-Responseprocedure according to an embodiment of the present invention (afterdiscovery).

FIG. 112 illustrates conversion of an ESGData state variable in XMLformat into an ESGData state variable in JSON format according toanother embodiment of the present invention.

FIG. 113 is a diagram illustrating a procedure of delivering an ESGDatastate variable in JSON format to a companion device using the Websocketprotocol according to another embodiment of the present invention.

FIG. 114 is a diagram illustrating a service/content identificationmessage format according to an embodiment of the present invention.

FIG. 115 is a diagram illustrating a method of providing a broadcastservice in a PD according to an embodiment of the present invention.

FIG. 116 is a diagram illustrating an apparatus for providing abroadcast service which operates as a PD according to an embodiment ofthe present invention.

DETAILED DESCRIPTION OF THE EMBODIMENTS

Reference will now be made in detail to the preferred embodiments of thepresent invention, examples of which are illustrated in the accompanyingdrawings. The detailed description, which will be given below withreference to the accompanying drawings, is intended to explain exemplaryembodiments of the present invention, rather than to show the onlyembodiments that may be implemented according to the present invention.The following detailed description includes specific details in order toprovide a thorough understanding of the present invention. However, itwill be apparent to those skilled in the art that the present inventionmay be practiced without such specific details.

Although most terms used in the present invention have been selectedfrom general ones widely used in the art, some terms have beenarbitrarily selected by the applicant and their meanings are explainedin detail in the following description as needed. Thus, the presentinvention should be understood based upon the intended meanings of theterms rather than their simple names or meanings.

The present invention provides apparatuses and methods for transmittingand receiving broadcast signals for future broadcast services. Futurebroadcast services according to an embodiment of the present inventioninclude a terrestrial broadcast service, a mobile broadcast service, aUHDTV service, etc. The present invention may process broadcast signalsfor the future broadcast services through non-Multiple Input MultipleOutput (MIMO) or MIMO according to one embodiment. A non-MIMO schemeaccording to an embodiment of the present invention may include aMultiple Input Single Output (MISO) scheme, a Single Input Single Output(SISO) scheme, etc.

FIG. 1 illustrates a receiver protocol stack according to an embodimentof the present invention.

Two schemes may be used in broadcast service delivery through abroadcast network.

In a first scheme, media processing units (MPUs) are transmitted usingan MMT protocol (MMTP) based on MPEG media transport (MMT). In a secondscheme, dynamic adaptive streaming over HTTP (DASH) segments may betransmitted using real time object delivery over unidirectionaltransport (ROUTE) based on MPEG DASH.

Non-timed content including NRT media, EPG data, and other files isdelivered with ROUTE. Signaling may be delivered over MMTP and/or ROUTE,while bootstrap signaling information is provided by the means of theService List Table (SLT).

In hybrid service delivery, MPEG DASH over HTTP/TCP/IP is used on thebroadband side. Media files in ISO Base Media File Format (BMFF) areused as the delivery, media encapsulation and synchronization format forboth broadcast and broadband delivery. Here, hybrid service delivery mayrefer to a case in which one or more program elements are deliveredthrough a broadband path.

Services are delivered using three functional layers. These are thePhysical layer, the Delivery layer and the Service Management layer. ThePhysical layer provides the mechanism by which signaling, serviceannouncement and IP packet streams are transported over the BroadcastPhysical layer and/or Broadband Physical layer. The Delivery layerprovides object and object flow transport functionality. It is enabledby the MMTP or the ROUTE protocol, operating on a UDP/IP multicast overthe Broadcast Physical layer, and enabled by the HTTP protocol on aTCP/IP unicast over the Broadband Physical layer. The Service Managementlayer enables any type of service, such as linear TV or HTML5application service, to be carried by the underlying Delivery andPhysical layers.

In this figure, a protocol stack part on a broadcast side may be dividedinto a part transmitted through the SLT and the MMTP, and a parttransmitted through ROUTE.

The SLT may be encapsulated through UDP and IP layers. Here, the SLTwill be described below. The MMTP may transmit data formatted in an MPUformat defined in MMT, and signaling information according to the MMTP.The data may be encapsulated through the UDP and IP layers. ROUTE maytransmit data formatted in a DASH segment form, signaling information,and non-timed data such as NRT data, etc. The data may be encapsulatedthrough the UDP and IP layers. According to a given embodiment, some orall processing according to the UDP and IP layers may be omitted. Here,the illustrated signaling information may be signaling informationrelated to a service.

The part transmitted through the SLT and the MMTP and the parttransmitted through ROUTE may be processed in the UDP and IP layers, andthen encapsulated again in a data link layer. The link layer will bedescribed below. Broadcast data processed in the link layer may bemulticast as a broadcast signal through processes such asencoding/interleaving, etc. in the physical layer.

In this figure, a protocol stack part on a broadband side may betransmitted through HTTP as described above. Data formatted in a DASHsegment form, signaling information, NRT information, etc. may betransmitted through HTTP. Here, the illustrated signaling informationmay be signaling information related to a service. The data may beprocessed through the TCP layer and the IP layer, and then encapsulatedinto the link layer. According to a given embodiment, some or all of theTCP, the IP, and the link layer may be omitted. Broadband data processedthereafter may be transmitted by unicast in the broadband through aprocess for transmission in the physical layer.

Service can be a collection of media components presented to the user inaggregate; components can be of multiple media types; a Service can beeither continuous or intermittent; a Service can be Real Time orNon-Real Time; Real Time Service can consist of a sequence of TVprograms.

FIG. 2 illustrates a relation between the SLT and SLS according to anembodiment of the present invention.

Service Signaling provides service discovery and descriptioninformation, and comprises two functional components: Bootstrapsignaling via the Service List Table (SLT) and the Service LayerSignaling (SLS). These represent the information which is necessary todiscover and acquire user services. The SLT enables the receiver tobuild a basic service list, and bootstrap the discovery of the SLS foreach service.

The SLT can enable very rapid acquisition of basic service information.The SLS enables the receiver to discover and access services and theircontent components. Details of the SLT and SLS will be described below.

As described in the foregoing, the SLT may be transmitted throughUDP/IP. In this instance, according to a given embodiment, datacorresponding to the SLT may be delivered through the most robust schemein this transmission.

The SLT may have access information for accessing SLS delivered by theROUTE protocol. In other words, the SLT may be bootstrapped into SLSaccording to the ROUTE protocol. The SLS is signaling informationpositioned in an upper layer of ROUTE in the above-described protocolstack, and may be delivered through ROUTE/UDP/IP. The SLS may betransmitted through one of LCT sessions included in a ROUTE session. Itis possible to access a service component corresponding to a desiredservice using the SLS.

In addition, the SLT may have access information for accessing an MMTsignaling component delivered by MMTP. In other words, the SLT may bebootstrapped into SLS according to the MMTP. The SLS may be delivered byan MMTP signaling message defined in MMT. It is possible to access astreaming service component (MPU) corresponding to a desired serviceusing the SLS. As described in the foregoing, in the present invention,an NRT service component is delivered through the ROUTE protocol, andthe SLS according to the MMTP may include information for accessing theROUTE protocol. In broadband delivery, the SLS is carried overHTTP(S)/TCP/IP.

FIG. 3 illustrates an SLT according to an embodiment of the presentinvention.

First, a description will be given of a relation among respectivelogical entities of service management, delivery, and a physical layer.

Services may be signaled as being one of two basic types. First type isa linear audio/video or audio-only service that may have an app-basedenhancement. Second type is a service whose presentation and compositionis controlled by a downloaded application that is executed uponacquisition of the service. The latter can be called an “app-based”service.

The rules regarding presence of ROUTE/LCT sessions and/or MMTP sessionsfor carrying the content components of a service may be as follows.

For a broadcast delivery of a Linear service without app-basedenhancement, the service's content components can be carried by either(but not both): (1) One or more ROUTE/LCT sessions, or (2) One or moreMMTP sessions.

For broadcast delivery of a Linear service with app-based enhancement,the service's content components can be carried by: (1) One or moreROUTE/LCT sessions, and (2) Zero or more MMTP sessions.

In certain embodiments, use of both MMTP and ROUTE for streaming mediacomponents in the same service may not be allowed.

For broadcast delivery of an App-based service, the service's contentcomponents can be carried by one or more ROUTE/LCT sessions.

Each ROUTE session comprises one or more LCT sessions which carry as awhole, or in part, the content components that make up the service. Instreaming services delivery, an LCT session may carry an individualcomponent of a user service such as an audio, video or closed captionstream. Streaming media is formatted as DASH Segments.

Each MMTP session comprises one or more MMTP packet flows which carryMMT signaling messages or as a whole, or in part, the content component.An MMTP packet flow may carry MMT signaling messages or componentsformatted as MPUs.

For the delivery of NRT User Services or system metadata, an LCT sessioncarries file-based content items. These content files may consist ofcontinuous (time-based) or discrete (non-time-based) media components ofan NRT service, or metadata such as Service Signaling or ESG fragments.Delivery of system metadata such as Service Signaling or ESG fragmentsmay also be achieved through the Signaling Message mode of MMTP.

A Broadcast Stream is the abstraction for an RF Channel, which isdefined in terms of a carrier frequency centered within a specifiedbandwidth. It is identified by the pair [geographic area, frequency]. APhysical Layer Pipe (PLP) corresponds to a portion of the RF channel.Each PLP has certain modulation and coding parameters. It is identifiedby a PLP identifier (PLPID), which is unique within the Broadcast Streamit belongs to. Here, PLP can be referred to as DP (Data Pipe).

Each service is identified by two forms of service identifier: a compactform that is used in the SLT and is unique only within the broadcastarea, and a globally unique form that is used in the SLS and the ESG AROUTE Session is identified by a source IP Address, destination IPAddress and destination port number. An LCT session (associated with theservice component(s) it carries) is identified by a Transport SessionIdentifier (TSI) which is unique within the scope of the parent ROUTEsession. Properties common to the LCT sessions, and certain propertiesunique to individual LCT sessions, are given in a ROUTE signalingstructure called a Service-based Transport Session Instance Description(S-TSID), which is part of the Service Layer Signaling. Each LCT sessionis carried over a single Physical Layer Pipe. According to a givenembodiment, one LCT session may be transmitted through a plurality ofPLPs. Different LCT sessions of a ROUTE session may or may not becontained in different Physical Layer Pipes. Here, the ROUTE session maybe delivered through a plurality of PLPs. The properties described inthe S-TSID include the TSI value and PLPID for each LCT session,descriptors for the delivery objects/files, and Application Layer FECparameters.

A MMTP Session is identified by destination IP Address and destinationport number. An MMTP packet flow (associated with the servicecomponent(s) it carries) is identified by a packet_id which is uniquewithin the scope of the parent MMTP session. Properties common to eachMMTP packet flow, and certain properties of MMTP packet flows, are givenin the SLT. Properties for each MMTP session are given by MMT signalingmessages, which may be carried within the MMTP session. Different MMTPpacket flows of a MMTP session may or may not be contained in differentPhysical Layer Pipes. Here, the MMTP session may be delivered through aplurality of PLPs. The properties described in the MMT signalingmessages include the packet_id value and PLPID for each MMTP packetflow. Here, the MMT signaling messages may have a form defined in MMT,or have a deformed form according to embodiments to be described below.

Hereinafter, a description will be given of low level signaling (LLS).

Signaling information which is carried in the payload of IP packets witha well-known address/port dedicated to this function is referred to asLow Level Signaling (LLS). The IP address and the port number may bedifferently configured depending on embodiments. In one embodiment, LLScan be transported in IP packets with address 224.0.23.60 anddestination port 4937/udp. LLS may be positioned in a portion expressedby “SLT” on the above-described protocol stack. However, according to agiven embodiment, the LLS may be transmitted through a separate physicalchannel (dedicated channel) in a signal frame without being subjected toprocessing of the UDP/IP layer.

UDP/IP packets that deliver LLS data may be formatted in a form referredto as an LLS table. A first byte of each UDP/IP packet that delivers theLLS data may correspond to a start of the LLS table. The maximum lengthof any LLS table is limited by the largest IP packet that can bedelivered from the PHY layer, 65,507 bytes.

The LLS table may include an LLS table ID field that identifies a typeof the LLS table, and an LLS table version field that identifies aversion of the LLS table. According to a value indicated by the LLStable ID field, the LLS table may include the above-described SLT or arating region table (RRT). The RRT may have information about contentadvisory rating.

Hereinafter, the SLT will be described. LLS can be signaling informationwhich supports rapid channel scans and bootstrapping of serviceacquisition by the receiver, and SLT can be a table of signalinginformation which is used to build a basic service listing and providebootstrap discovery of SLS.

The function of the SLT is similar to that of the Program AssociationTable (PAT) in MPEG-2 Systems, and the Fast Information Channel (FIC)found in ATSC Systems. For a receiver first encountering the broadcastemission, this is the place to start. SLT supports a rapid channel scanwhich allows a receiver to build a list of all the services it canreceive, with their channel name, channel number, etc., and SLT providesbootstrap information that allows a receiver to discover the SLS foreach service. For ROUTE/DASH-delivered services, the bootstrapinformation includes the destination IP address and destination port ofthe LCT session that carries the SLS. For MMT/MPU-delivered services,the bootstrap information includes the destination IP address anddestination port of the MMTP session carrying the SLS.

The SLT supports rapid channel scans and service acquisition byincluding the following information about each service in the broadcaststream. First, the SLT can include information necessary to allow thepresentation of a service list that is meaningful to viewers and thatcan support initial service selection via channel number or up/downselection. Seconds, the SLT can include information necessary to locatethe Service Layer Signaling for each service listed. That is, the SLTmay include access information related to a location at which the SLS isdelivered.

The illustrated SLT according to the present embodiment is expressed asan XML document having an SLT root element. According to a givenembodiment, the SLT may be expressed in a binary format or an XMLdocument.

The SLT root element of the SLT illustrated in the figure may include@bsid, @sltSectionVersion, @sltSectionNumber, @totalSltSectionNumbers,@language, @capabilities, InetSigLoc and/or Service. According to agiven embodiment, the SLT root element may further include @providerId.According to a given embodiment, the SLT root element may not include@language.

The service element may include @serviceId, @SLTserviceSeqNumber,@protected, @majorChannelNo, @minorChannelNo, @serviceCategory,@shortServiceName, @hidden, @slsProtocolType, BroadcastSignaling,@slsPlpId, @slsDestinationIpAddress, @slsDestinationUdpPort,@slsSourceIpAddress, @slsMajorProtocolVersion, @SlsMinorProtocolVersion,@serviceLanguage, @broadbandAccessRequired, @capabilities and/orInetSigLoc.

According to a given embodiment, an attribute or an element of the SLTmay be added/changed/deleted. Each element included in the SLT mayadditionally have a separate attribute or element, and some attribute orelements according to the present embodiment may be omitted. Here, afield which is marked with @ may correspond to an attribute, and a fieldwhich is not marked with @ may correspond to an element.

@bsid is an identifier of the whole Broadcast Stream. The value of BSIDmay be unique on a regional level.

@providerId can be an index of broadcaster that is using part or all ofthis broadcast stream. This is an optional attribute. When it's notpresent, it means that this broadcast stream is being used by onebroadcaster. @providerId is not illustrated in the figure.

@sltSectionVersion can be a version number of the SLT section. ThesltSectionVersion can be incremented by 1 when a change in theinformation carried within the slt occurs. When it reaches maximumvalue, it wraps around to 0.

@sltSectionNumber can be the number, counting from 1, of this section ofthe SLT. In other words, @sltSectionNumber may correspond to a sectionnumber of the SLT section. When this field is not used,@sltSectionNumber may be set to a default value of 1.

@totalSltSectionNumbers can be the total number of sections (that is,the section with the highest sltSectionNumber) of the SLT of which thissection is part. sltSectionNumber and totalSltSectionNumbers togethercan be considered to indicate “Part M of N” of one portion of the SLTwhen it is sent in fragments. In other words, when the SLT istransmitted, transmission through fragmentation may be supported. Whenthis field is not used, @totalSltSectionNumbers may be set to a defaultvalue of 1. A case in which this field is not used may correspond to acase in which the SLT is not transmitted by being fragmented.

@language can indicate primary language of the services included in thisslt instance. According to a given embodiment, a value of this field mayhave be a three-character language code defined in the ISO. This fieldmay be omitted.

@capabilities can indicate required capabilities for decoding andmeaningfully presenting the content for all the services in this sltinstance.

InetSigLoc can provide a URL telling the receiver where it can acquireany requested type of data from external server(s) via broadband. Thiselement may include @urlType as a lower field. According to a value ofthe @urlType field, a type of a URL provided by InetSigLoc may beindicated. According to a given embodiment, when the @urlType field hasa value of 0, InetSigLoc may provide a URL of a signaling server. Whenthe @urlType field has a value of 1, InetSigLoc may provide a URL of anESG server. When the @urlType field has other values, the field may bereserved for future use.

The service field is an element having information about each service,and may correspond to a service entry. Service element fieldscorresponding to the number of services indicated by the SLT may bepresent. Hereinafter, a description will be given of a lowerattribute/element of the service field.

@serviceId can be an integer number that uniquely identify this Servicewithin the scope of this Broadcast area. According to a givenembodiment, a scope of @serviceId may be changed. @SLTserviceSeqNumbercan be an integer number that indicates the sequence number of the SLTservice information with service ID equal to the serviceId attributeabove. SLTserviceSeqNumber value can start at 0 for each service and canbe incremented by 1 every time any attribute in this Service element ischanged. If no attribute values are changed compared to the previousService element with a particular value of ServiceID thenSLTserviceSeqNumber would not be incremented. The SLTserviceSeqNumberfield wraps back to 0 after reaching the maximum value.

@protected is flag information which may indicate whether one or morecomponents for significant reproduction of the service are in aprotected state. When set to “1” (true), that one or more componentsnecessary for meaningful presentation is protected. When set to “0”(false), this flag indicates that no components necessary for meaningfulpresentation of the service are protected. Default value is false.

@majorChannelNo is an integer number representing the “major” channelnumber of the service. An example of the field may have a range of 1 to999.

@minorChannelNo is an integer number representing the “minor” channelnumber of the service. An example of the field may have a range of 1 to999.

@serviceCategory can indicate the category of this service. This fieldmay indicate a type that varies depending on embodiments. According to agiven embodiment, when this field has values of 1, 2, and 3, the valuesmay correspond to a linear A/V service, a linear audio only service, andan app-based service, respectively. When this field has a value of 0,the value may correspond to a service of an undefined category. Whenthis field has other values except for 1, 2, and 3, the field may bereserved for future use. @shortServiceName can be a short string name ofthe Service.

@hidden can be boolean value that when present and set to “true”indicates that the service is intended for testing or proprietary use,and is not to be selected by ordinary TV receivers. The default value is“false” when not present.

@slsProtocolType can be an attribute indicating the type of protocol ofService Layer Signaling used by this service. This field may indicate atype that varies depending on embodiments. According to a givenembodiment, when this field has values of 1 and 2, protocols of SLS usedby respective corresponding services may be ROUTE and MMTP,respectively. When this field has other values except for 0, the fieldmay be reserved for future use. This field may be referred to as@slsProtocol.

BroadcastSignaling and lower attributes/elements thereof may provideinformation related to broadcast signaling. When the BroadcastSignalingelement is not present, the child element InetSigLoc of the parentService element can be present and its attribute urlType includesURL_type 0x00 (URL to signaling server). In this case attribute urlsupports the query parameter svc=<service_id> where service_idcorresponds to the serviceId attribute for the parent Service element.

Alternatively when the BroadcastSignaling element is not present, theelement InetSigLoc can be present as a child element of the slt rootelement and the attribute urlType of that InetSigLoc element includesURL_type 0x00 (URL to signaling server). In this case attribute url forURL_type 0x00 supports the query parameter svc=<service_id> whereservice_id corresponds to the serviceId attribute for the parent Serviceelement.

@slsPlpId can be a string representing an integer number indicating thePLP ID of the physical layer pipe carrying the SLS for this service.

@slsDestinationIpAddress can be a string containing the dotted-IPv4destination address of the packets carrying SLS data for this service.

@slsDestinationUdpPort can be a string containing the port number of thepackets carrying SLS data for this service. As described in theforegoing, SLS bootstrapping may be performed by destination IP/UDPinformation.

@slsSourceIpAddress can be a string containing the dotted-IPv4 sourceaddress of the packets carrying SLS data for this service.

@slsMajorProtocolVersion can be major version number of the protocolused to deliver the Service Layer Signaling for this service. Defaultvalue is 1.

@SlsMinorProtocolVersion can be minor version number of the protocolused to deliver the Service Layer Signalling for this service. Defaultvalue is 0.

@serviceLanguage can be a three-character language code indicating theprimary language of the service. A value of this field may have a formthat varies depending on embodiments.

@broadbandAccessRequired can be a Boolean indicating that broadbandaccess is required for a receiver to make a meaningful presentation ofthe service. Default value is false. When this field has a value ofTrue, the receiver needs to access a broadband for significant servicereproduction, which may correspond to a case of hybrid service delivery.

@capabilities can represent required capabilities for decoding andmeaningfully presenting the content for the service with service IDequal to the serviceId attribute above.

InetSigLoc can provide a URL for access to signaling or announcementinformation via broadband, if available. Its datatype can be anextension of the anyURL datatype, adding an @urlType attribute thatindicates what the URL gives access to. An @urlType field of this fieldmay indicate the same meaning as that of the @urlType field ofInetSigLoc described above. When an InetSigLoc element of attributeURL_type 0x00 is present as an element of the SLT, it can be used tomake HTTP requests for signaling metadata. The HTTP POST message bodymay include a service term. When the InetSigLoc element appears at thesection level, the service term is used to indicate the service to whichthe requested signaling metadata objects apply. If the service term isnot present, then the signaling metadata objects for all services in thesection are requested. When the InetSigLoc appears at the service level,then no service term is needed to designate the desired service. When anInetSigLoc element of attribute URL_type 0x01 is provided, it can beused to retrieve ESG data via broadband. If the element appears as achild element of the service element, then the URL can be used toretrieve ESG data for that service. if the element appears as a childelement of the SLT element, then the URL can be used to retrieve ESGdata for all services in that section.

In another example of the SLT, @sltSectionVersion, @sltSectionNumber,@totalSltSectionNumbers and/or @language fields of the SLT may beomitted.

In addition, the above-described InetSigLoc field may be replaced by@sltInetSigUri and/or @sltInetEsgUri field. The two fields may includethe URI of the signaling server and URI information of the ESG server,respectively. The InetSigLoc field corresponding to a lower field of theSLT and the InetSigLoc field corresponding to a lower field of theservice field may be replaced in a similar manner.

The suggested default values may vary depending on embodiments. Anillustrated “use” column relates to the respective fields. Here, “1” mayindicate that a corresponding field is an essential field, and “0 . . .1” may indicate that a corresponding field is an optional field.

FIG. 4 illustrates SLS bootstrapping and a service discovery processaccording to an embodiment of the present invention.

Hereinafter, SLS will be described.

SLS can be signaling which provides information for discovery andacquisition of services and their content components.

For ROUTE/DASH, the SLS for each service describes characteristics ofthe service, such as a list of its components and where to acquire them,and the receiver capabilities required to make a meaningful presentationof the service. In the ROUTE/DASH system, the SLS includes the UserService Bundle Description (USBD), the S-TSID and the DASH MediaPresentation Description (MPD). Here, USBD or user service description(USD) is one of SLS XML fragments, and may function as a signaling herbthat describes specific descriptive information. USBD/USD may beextended beyond 3GPP MBMS. Details of USBD/USD will be described below.

The Service Signaling focuses on basic attributes of the service itself,especially those attributes needed to acquire the service. Properties ofthe service and programming that are intended for viewers appear asService Announcement, or ESG data.

Having separate Service Signaling for each service permits a receiver toacquire the appropriate SLS for a service of interest without the needto parse the entire SLS carried within a Broadcast Stream.

For optional broadband delivery of Service Signaling, the SLT caninclude HTTP URLs where the Service Signaling files can be obtained, asdescribed above.

LLS is used for bootstrapping SLS acquisition, and subsequently, the SLSis used to acquire service components delivered on either ROUTE sessionsor MMTP sessions. The described figure illustrates the followingsignaling sequences. Receiver starts acquiring the SLT described above.Each service identified by service_id delivered over ROUTE sessionsprovides SLS bootstrapping information: PLPID(#1), source IP address(sIP1), destination IP address (dIP1), and destination port number(dPort1). Each service identified by service_id delivered over MMTPsessions provides SLS bootstrapping information: PLPID(#2), destinationIP address (dIP2), and destination port number (dPort2).

For streaming services delivery using ROUTE, the receiver can acquireSLS fragments carried over the IP/UDP/LCT session and PLP; whereas forstreaming services delivery using MMTP, the receiver can acquire SLSfragments carried over an MMTP session and PLP. For service deliveryusing ROUTE, these SLS fragments include USBD/USD fragments, S-TSIDfragments, and MPD fragments. They are relevant to one service. USBD/USDfragments describes service layer properties and provide URI referencesto S-TSID fragments and URI references to MPD fragments. In other words,the USBD/USD may refer to S-TSID and MPD. For service delivery usingMMTP, the USBD references the MMT Signaling's MPT Message, the MP Tableof which provides identification of Package ID and location informationfor assets belonging to the service. Here, an asset is a multimedia dataentity, and may refer to a data entity which is combined into one uniqueID and is used to generate one multimedia presentation. The asset maycorrespond to a service component included in one service. The MPTmessage is a message having the MP table of MMT. Here, the MP table maybe an MMT package table having information about content and an MMTasset. Details may be similar to a definition in MMT. Here, mediapresentation may correspond to a collection of data that establishesbounded/unbounded presentation of media content.

The S-TSID fragment provides component acquisition informationassociated with one service and mapping between DASH Representationsfound in the MPD and in the TSI corresponding to the component of theservice. The S-TSID can provide component acquisition information in theform of a TSI and the associated DASH Representation identifier, andPLPID carrying DASH Segments associated with the DASH Representation. Bythe PLPID and TSI values, the receiver collects the audio/videocomponents from the service and begins buffering DASH Media Segmentsthen applies the appropriate decoding processes.

For USBD listing service components delivered on MMTP sessions, asillustrated by “Service #2” in the described figure, the receiver alsoacquires an MPT message with matching MMT_package_id to complete theSLS. An MPT message provides the full list of service componentscomprising a service and the acquisition information for each component.Component acquisition information includes MMTP session information, thePLPID carrying the session and the packet_id within that session.

According to a given embodiment, for example, in ROUTE, two or moreS-TSID fragments may be used. Each fragment may provide accessinformation related to LCT sessions delivering content of each service.

In ROUTE, S-TSID, USBD/USD, MPD, or an LCT session delivering S-TSID,USBD/USD or MPD may be referred to as a service signaling channel. InMMTP, USBD/UD, an MMT signaling message, or a packet flow delivering theMMTP or USBD/UD may be referred to as a service signaling channel.

Unlike the illustrated example, one ROUTE or MMTP session may bedelivered through a plurality of PLPs. In other words, one service maybe delivered through one or more PLPs. As described in the foregoing,one LCT session may be delivered through one PLP. Unlike the figure,according to a given embodiment, components included in one service maybe delivered through different ROUTE sessions. In addition, according toa given embodiment, components included in one service may be deliveredthrough different MMTP sessions. According to a given embodiment,components included in one service may be delivered separately through aROUTE session and an MMTP session. Although not illustrated, componentsincluded in one service may be delivered via broadband (hybriddelivery).

FIG. 5 illustrates a USBD fragment for ROUTE/DASH according to anembodiment of the present invention.

Hereinafter, a description will be given of SLS in delivery based onROUTE.

Service Layer Signaling provides detailed technical information to thereceiver to enable the discovery and access of services and theircontent components. It can include a set of XML-encoded metadatafragments carried over a dedicated LCT session. That LCT session can beacquired using the bootstrap information contained in the SLT asdescribed above. The SLS is defined on a per-service level, and itdescribes the characteristics and access information of the service,such as a list of its content components and how to acquire them, andthe receiver capabilities required to make a meaningful presentation ofthe service. In the ROUTE/DASH system, for linear services delivery, theSLS consists of the following metadata fragments: USBD, S-TSID and theDASH MPD. The SLS fragments can be delivered on a dedicated LCTtransport session with TSI=0. According to a given embodiment, a TSI ofa particular LCT session (dedicated LCT session) in which an SLSfragment is delivered may have a different value. According to a givenembodiment, an LCT session in which an SLS fragment is delivered may besignaled using the SLT or another scheme.

ROUTE/DASH Service Layer Signaling can include the User Service BundleDescription (USBD) and Service-based Transport Session InstanceDescription (S-TSID) metadata fragments. These service signalingfragments are applicable to both linear and application-based services.The USBD fragment contains service identification, device capabilitiesinformation, references to other SLS fragments required to access theservice and constituent media components, and metadata to enable thereceiver to determine the transport mode (broadcast and/or broadband) ofservice components. The S-TSID fragment, referenced by the USBD,provides transport session descriptions for the one or more ROUTE/LCTsessions in which the media content components of a service aredelivered, and descriptions of the delivery objects carried in those LCTsessions. The USBD and S-TSID will be described below.

In streaming content signaling in ROUTE-based delivery, a streamingcontent signaling component of SLS corresponds to an MPD fragment. TheMPD is typically associated with linear services for the delivery ofDASH Segments as streaming content. The MPD provides the resourceidentifiers for individual media components of the linear/streamingservice in the form of Segment URLs, and the context of the identifiedresources within the Media Presentation. Details of the MPD will bedescribed below.

In app-based enhancement signaling in ROUTE-based delivery, app-basedenhancement signaling pertains to the delivery of app-based enhancementcomponents, such as an application logic file, locally-cached mediafiles, an network content items, or a notification stream. Anapplication can also retrieve locally-cached data over a broadbandconnection when available.

Hereinafter, a description will be given of details of USBD/USDillustrated in the figure.

The top level or entry point SLS fragment is the USBD fragment. Anillustrated USBD fragment is an example of the present invention, basicfields of the USBD fragment not illustrated in the figure may beadditionally provided according to a given embodiment. As described inthe foregoing, the illustrated USBD fragment has an extended form, andmay have fields added to a basic configuration.

The illustrated USBD may have a bundleDescription root element. ThebundleDescription root element may have a userServiceDescriptionelement. The userServiceDescription element may correspond to aninstance for one service.

The userServiceDescription element may include @serviceId,@atsc:serviceId, @atsc:serviceStatus, @atsc:fullMPDUri, @atsc:sTSIDUri,name, serviceLanguage, atsc:capabilityCode and/or deliveryMethod.

@serviceId can be a globally unique URI that identifies a service,unique within the scope of the BSID. This parameter can be used to linkto ESG data (Service@globalServiceID).

@atsc:serviceId is a reference to corresponding service entry inLLS(SLT). The value of this attribute is the same value of serviceIdassigned to the entry.

@atsc:serviceStatus can specify the status of this service. The valueindicates whether this service is active or inactive. When set to “1”(true), that indicates service is active. When this field is not used,@atsc:serviceStatus may be set to a default value of 1.

@atsc:fullMPDUri can reference an MPD fragment which containsdescriptions for contents components of the service delivered overbroadcast and optionally, also over broadband.

@atsc:sTSIDUri can reference the S-TSID fragment which provides accessrelated parameters to the Transport sessions carrying contents of thisservice.

name can indicate name of the service as given by the lang attribute.name element can include lang attribute, which indicating language ofthe service name. The language can be specified according to XMLdatatypes.

serviceLanguage can represent available languages of the service. Thelanguage can be specified according to XML datatypes.

atsc:capabilityCode can specify the capabilities required in thereceiver to be able to create a meaningful presentation of the contentof this service. According to a given embodiment, this field may specifya predefined capability group. Here, the capability group may be a groupof capability attribute values for significant presentation. This fieldmay be omitted according to a given embodiment.

deliveryMethod can be a container of transport related informationpertaining to the contents of the service over broadcast and(optionally) broadband modes of access. Referring to data included inthe service, when the number of the data is N, delivery schemes forrespective data may be described by this element. The deliveryMethod mayinclude an r12:broadcastAppService element and an r12:unicastAppServiceelement. Each lower element may include a basePattern element as a lowerelement.

r12:broadcastAppService can be a DASH Representation delivered overbroadcast, in multiplexed or non-multiplexed form, containing thecorresponding media component(s) belonging to the service, across allPeriods of the affiliated Media Presentation. In other words, each ofthe fields may indicate DASH representation delivered through thebroadcast network.

r12:unicastAppService can be a DASH Representation delivered overbroadband, in multiplexed or non-multiplexed form, containing theconstituent media content component(s) belonging to the service, acrossall Periods of the affiliated Media Presentation. In other words, eachof the fields may indicate DASH representation delivered via broadband.

basePattern can be a character pattern for use by the receiver to matchagainst any portion of the Segment URL used by the DASH client torequest Media Segments of a parent Representation under its containingPeriod. A match implies that the corresponding requested Media Segmentis carried over broadcast transport. In a URL address for receiving DASHrepresentation expressed by each of the r12:broadcastAppService elementand the r12:unicastAppService element, a part of the URL, etc. may havea particular pattern. The pattern may be described by this field. Somedata may be distinguished using this information. The proposed defaultvalues may vary depending on embodiments. The “use” column illustratedin the figure relates to each field. Here, M may denote an essentialfield, O may denote an optional field, OD may denote an optional fieldhaving a default value, and CM may denote a conditional essential field.0 . . . 1 to 0 . . . N may indicate the number of available fields.

FIG. 6 illustrates an S-TSID fragment for ROUTE/DASH according to anembodiment of the present invention.

Hereinafter, a description will be given of the S-TSID illustrated inthe figure in detail.

S-TSID can be an SLS XML fragment which provides the overall sessiondescription information for transport session(s) which carry the contentcomponents of a service. The S-TSID is the SLS metadata fragment thatcontains the overall transport session description information for thezero or more ROUTE sessions and constituent LCT sessions in which themedia content components of a service are delivered. The S-TSID alsoincludes file metadata for the delivery object or object flow carried inthe LCT sessions of the service, as well as additional information onthe payload formats and content components carried in those LCTsessions.

Each instance of the S-TSID fragment is referenced in the USBD fragmentby the @atsc:sTSIDUri attribute of the userServiceDescription element.The illustrated S-TSID according to the present embodiment is expressedas an XML document. According to a given embodiment, the S-TSID may beexpressed in a binary format or as an XML document.

The illustrated S-TSID may have an S-TSID root element. The S-TSID rootelement may include @serviceId and/or RS.

@serviceID can be a reference corresponding service element in the USD.The value of this attribute can reference a service with a correspondingvalue of service_id.

The RS element may have information about a ROUTE session for deliveringthe service data. Service data or service components may be deliveredthrough a plurality of ROUTE sessions, and thus the number of RSelements may be 1 to N.

The RS element may include @bsid, @sIpAddr, @dIpAddr, @dport, @PLPIDand/or LS.

@bsid can be an identifier of the Broadcast Stream within which thecontent component(s) of the broadcastAppService are carried. When thisattribute is absent, the default Broadcast Stream is the one whose PLPscarry SLS fragments for this service. Its value can be identical to thatof the broadcast_stream_id in the SLT.

@sIpAddr can indicate source IP address. Here, the source IP address maybe a source IP address of a ROUTE session for delivering a servicecomponent included in the service. As described in the foregoing,service components of one service may be delivered through a pluralityof ROUTE sessions. Thus, the service components may be transmitted usinganother ROUTE session other than the ROUTE session for delivering theS-TSID. Therefore, this field may be used to indicate the source IPaddress of the ROUTE session. A default value of this field may be asource IP address of a current ROUTE session. When a service componentis delivered through another ROUTE session, and thus the ROUTE sessionneeds to be indicated, a value of this field may be a value of a sourceIP address of the ROUTE session. In this case, this field may correspondto M, that is, an essential field.

@dIpAddr can indicate destination IP address. Here, a destination IPaddress may be a destination IP address of a ROUTE session that deliversa service component included in a service. For a similar case to theabove description of @sIpAddr, this field may indicate a destination IPaddress of a ROUTE session that delivers a service component. A defaultvalue of this field may be a destination IP address of a current ROUTEsession. When a service component is delivered through another ROUTEsession, and thus the ROUTE session needs to be indicated, a value ofthis field may be a value of a destination IP address of the ROUTEsession. In this case, this field may correspond to M, that is, anessential field.

@dport can indicate destination port. Here, a destination port may be adestination port of a ROUTE session that delivers a service componentincluded in a service. For a similar case to the above description of@sIpAddr, this field may indicate a destination port of a ROUTE sessionthat delivers a service component. A default value of this field may bea destination port number of a current ROUTE session. When a servicecomponent is delivered through another ROUTE session, and thus the ROUTEsession needs to be indicated, a value of this field may be adestination port number value of the ROUTE session. In this case, thisfield may correspond to M, that is, an essential field.

@PLPID may be an ID of a PLP for a ROUTE session expressed by an RS. Adefault value may be an ID of a PLP of an LCT session including acurrent S-TSID. According to a given embodiment, this field may have anID value of a PLP for an LCT session for delivering an S-TSID in theROUTE session, and may have ID values of all PLPs for the ROUTE session.

An LS element may have information about an LCT session for delivering aservice data. Service data or service components may be deliveredthrough a plurality of LCT sessions, and thus the number of LS elementsmay be 1 to N.

The LS element may include @tsi, @PLPID, @bw, @startTime, @endTime,SrcFlow and/or RprFlow.

@tsi may indicate a TSI value of an LCT session for delivering a servicecomponent of a service.

@PLPID may have ID information of a PLP for the LCT session. This valuemay be overwritten on a basic ROUTE session value.

@bw may indicate a maximum bandwidth value. @startTime may indicate astart time of the LCT session. @endTime may indicate an end time of theLCT session. A SrcFlow element may describe a source flow of ROUTE. ARprFlow element may describe a repair flow of ROUTE.

The proposed default values may be varied according to an embodiment.The “use” column illustrated in the figure relates to each field. Here,M may denote an essential field, O may denote an optional field, OD maydenote an optional field having a default value, and CM may denote aconditional essential field. 0 . . . 1 to 0 . . . N may indicate thenumber of available fields.

Hereinafter, a description will be given of MPD for ROUTE/DASH.

The MPD is an SLS metadata fragment which contains a formalizeddescription of a DASH Media Presentation, corresponding to a linearservice of a given duration defined by the broadcaster (for example asingle TV program, or the set of contiguous linear TV programs over aperiod of time). The contents of the MPD provide the resourceidentifiers for Segments and the context for the identified resourceswithin the Media Presentation. The data structure and semantics of theMPD fragment can be according to the MPD defined by MPEG DASH.

One or more of the DASH Representations conveyed in the MPD can becarried over broadcast. The MPD may describe additional Representationsdelivered over broadband, e.g. in the case of a hybrid service, or tosupport service continuity in handoff from broadcast to broadcast due tobroadcast signal degradation (e.g. driving through a tunnel).

FIG. 7 illustrates a USBD/USD fragment for MMT according to anembodiment of the present invention.

MMT Service Layer Signaling for linear services comprise the USBDfragment and the MMT Package (MP) table. The MP table is as describedabove. The USBD fragment contains service identification, devicecapabilities information, references to other SLS information requiredto access the service and constituent media components, and the metadatato enable the receiver to determine the transport mode (broadcast and/orbroadband) of the service components. The MP table for MPU components,referenced by the USBD, provides transport session descriptions for theMMTP sessions in which the media content components of a service aredelivered and the descriptions of the Assets carried in those MMTPsessions.

The streaming content signaling component of the SLS for MPU componentscorresponds to the MP table defined in MMT. The MP table provides a listof MMT Assets where each Asset corresponds to a single service componentand the description of the location information for this component.

USBD fragments may also contain references to the S-TSID and the MPD asdescribed above, for service components delivered by the ROUTE protocoland the broadband, respectively. According to a given embodiment, indelivery through MMT, a service component delivered through the ROUTEprotocol is NRT data, etc. Thus, in this case, MPD may be unnecessary.In addition, in delivery through MMT, information about an LCT sessionfor delivering a service component, which is delivered via broadband, isunnecessary, and thus an S-TSID may be unnecessary. Here, an MMT packagemay be a logical collection of media data delivered using MMT. Here, anMMTP packet may refer to a formatted unit of media data delivered usingMMT. An MPU may refer to a generic container of independently decodabletimed/non-timed data. Here, data in the MPU is media codec agnostic.

Hereinafter, a description will be given of details of the USBD/USDillustrated in the figure.

The illustrated USBD fragment is an example of the present invention,and basic fields of the USBD fragment may be additionally providedaccording to an embodiment. As described in the foregoing, theillustrated USBD fragment has an extended form, and may have fieldsadded to a basic structure.

The illustrated USBD according to an embodiment of the present inventionis expressed as an XML document. According to a given embodiment, theUSBD may be expressed in a binary format or as an XML document.

The illustrated USBD may have a bundleDescription root element. ThebundleDescription root element may have a userServiceDescriptionelement. The userServiceDescription element may be an instance for oneservice.

The userServiceDescription element may include @serviceId,@atsc:serviceId, name, serviceLanguage, atsc:capabilityCode,atsc:Channel, atsc:mpuComponent, atsc:routeComponent,atsc:broadbandComponent and/or atsc:ComponentInfo.

Here, @serviceId, @atsc:serviceId, name, serviceLanguage, andatsc:capabilityCode may be as described above. The lang field below thename field may be as described above. atsc:capabilityCode may be omittedaccording to a given embodiment.

The userServiceDescription element may further include anatsc:contentAdvisoryRating element according to an embodiment. Thiselement may be an optional element. atsc:contentAdvisoryRating canspecify the content advisory rating. This field is not illustrated inthe figure.

atsc:Channel may have information about a channel of a service. Theatsc:Channel element may include @atsc:majorChannelNo,@atsc:minorChannelNo, @atsc:serviceLang, @atsc:serviceGenre,@atsc:serviceIcon and/or atsc:ServiceDescription. @atsc:majorChannelNo,@atsc:minorChannelNo, and @atsc:serviceLang may be omitted according toa given embodiment.

@atsc:majorChannelNo is an attribute that indicates the major channelnumber of the service.

@atsc:minorChannelNo is an attribute that indicates the minor channelnumber of the service.

@atsc:serviceLang is an attribute that indicates the primary languageused in the service.

@atsc:serviceGenre is an attribute that indicates primary genre of theservice.

@atsc:serviceIcon is an attribute that indicates the Uniform ResourceLocator (URL) for the icon used to represent this service.

atsc:ServiceDescription includes service description, possibly inmultiple languages. atsc:ServiceDescription includes can include@atsc:serviceDescrText and/or @atsc:serviceDescrLang.

@atsc:serviceDescrText is an attribute that indicates description of theservice.

@atsc:serviceDescrLang is an attribute that indicates the language ofthe serviceDescrText attribute above.

atsc:mpuComponent may have information about a content component of aservice delivered in a form of an MPU. atsc:mpuComponent may include@atsc:mmtPackageId and/or @atsc:nextMmtPackageId.

@atsc:mmtPackageId can reference a MMT Package for content components ofthe service delivered as MPUs.

@atsc:nextMmtPackageId can reference a MMT Package to be used after theone referenced by @atsc:mmtPackageId in time for content components ofthe service delivered as MPUs.

atsc:routeComponent may have information about a content component of aservice delivered through ROUTE. atsc:routeComponent may include@atsc:sTSIDUri, @sTSIDPlpId, @sTSIDDestinationIpAddress,@sTSIDDestinationUdpPort, @sTSIDSourceIpAddress,@sTSIDMajorProtocolVersion and/or @sTSIDMinorProtocolVersion.

@atsc:sTSIDUri can be a reference to the S-TSID fragment which providesaccess related parameters to the Transport sessions carrying contents ofthis service. This field may be the same as a URI for referring to anS-TSID in USBD for ROUTE described above. As described in the foregoing,in service delivery by the MMTP, service components, which are deliveredthrough NRT, etc., may be delivered by ROUTE. This field may be used torefer to the S-TSID therefor.

@sTSIDPlpId can be a string representing an integer number indicatingthe PLP ID of the physical layer pipe carrying the S-TSID for thisservice. (default: current physical layer pipe).

@sTSIDDestinationIpAddress can be a string containing the dotted-IPv4destination address of the packets carrying S-TSID for this service.(default: current MMTP session's source IP address).

@sTSIDDestinationUdpPort can be a string containing the port number ofthe packets carrying S-TSID for this service.

@sTSIDSourceIpAddress can be a string containing the dotted-IPv4 sourceaddress of the packets carrying S-TSID for this service.

@sTSIDMajorProtocolVersion can indicate major version number of theprotocol used to deliver the S-TSID for this service. Default value is1.

@sTSIDMinorProtocolVersion can indicate minor version number of theprotocol used to deliver the S-TSID for this service. Default value is0.

atsc:broadbandComponent may have information about a content componentof a service delivered via broadband. In other words,atsc:broadbandComponent may be a field on the assumption of hybriddelivery. atsc:broadbandComponent may further include @atsc:fullfMPDUri.

@atsc:fullfMPDUri can be a reference to an MPD fragment which containsdescriptions for contents components of the service delivered overbroadband.

An atsc:ComponentInfo field may have information about an availablecomponent of a service. The atsc:ComponentInfo field may haveinformation about a type, a role, a name, etc. of each component. Thenumber of atsc:ComponentInfo fields may correspond to the number (N) ofrespective components. The atsc:ComponentInfo field may include@atsc:componentType, @atsc:componentRole, @atsc:componentProtectedFlag,@atsc:componentId and/or @atsc:componentName.

@atsc:componentType is an attribute that indicates the type of thiscomponent. Value of 0 indicates an audio component. Value of 1 indicatesa video component. Value of 2 indicated a closed caption component.Value of 3 indicates an application component. Values 4 to 7 arereserved. A meaning of a value of this field may be differently setdepending on embodiments.

@atsc:componentRole is an attribute that indicates the role or kind ofthis component.

For audio (when componentType attribute above is equal to 0): values ofcomponentRole attribute are as follows: 0=Complete main, 1=Music andEffects, 2=Dialog, 3=Commentary, 4=Visually Impaired, 5=HearingImpaired, 6=Voice-Over, 7-254=reserved, 255=unknown. For Video (whencomponentType attribute above is equal to 1) values of componentRoleattribute are as follows: 0=Primary video, 1=Alternative camera view,2=Other alternative video component, 3=Sign language inset, 4=Followsubject video, 5=3D video left view, 6=3D video right view, 7=3D videodepth information, 8=Part of video array <x,y> of <n,m>,9=Follow-Subject metadata, 10-254=reserved, 255=unknown.

For Closed Caption component (when componentType attribute above isequal to 2) values of componentRole attribute are as follows: 0=Normal,1=Easy reader, 2-254=reserved, 255=unknown.

When componentType attribute above is between 3 to 7, inclusive, thecomponentRole can be equal to 255. A meaning of a value of this fieldmay be differently set depending on embodiments.

@atsc:componentProtectedFlag is an attribute that indicates if thiscomponent is protected (e.g. encrypted). When this flag is set to avalue of 1 this component is protected (e.g. encrypted). When this flagis set to a value of 0 this component is not protected (e.g. encrypted).When not present the value of componentProtectedFlag attribute isinferred to be equal to 0. A meaning of a value of this field may bedifferently set depending on embodiments.

@atsc:componentId is an attribute that indicates the identifier of thiscomponent. The value of this attribute can be the same as the asset_idin the MP table corresponding to this component.

@atsc:componentName is an attribute that indicates the human readablename of this component.

The proposed default values may vary depending on embodiments. The “use”column illustrated in the figure relates to each field. Here, M maydenote an essential field, O may denote an optional field, OD may denotean optional field having a default value, and CM may denote aconditional essential field. 0 . . . 1 to 0 . . . N may indicate thenumber of available fields.

Hereinafter, a description will be given of MPD for MMT.

The Media Presentation Description is an SLS metadata fragmentcorresponding to a linear service of a given duration defined by thebroadcaster (for example a single TV program, or the set of contiguouslinear TV programs over a period of time). The contents of the MPDprovide the resource identifiers for Segments and the context for theidentified resources within the Media Presentation. The data structureand semantics of the MPD can be according to the MPD defined by MPEGDASH.

In the present embodiment, an MPD delivered by an MMTP session describesRepresentations delivered over broadband, e.g. in the case of a hybridservice, or to support service continuity in handoff from broadcast tobroadband due to broadcast signal degradation (e.g. driving under amountain or through a tunnel).

Hereinafter, a description will be given of an MMT signaling message forMMT.

When MMTP sessions are used to carry a streaming service, MMT signalingmessages defined by MMT are delivered by MMTP packets according toSignaling Message Mode defined by MMT. The value of the packet_id fieldof MMTP packets carrying Service Layer Signaling isset to ‘00’ exceptfor MMTP packets carrying MMT signaling messages specific to an Asset,which can be set to the same packet_id value as the MMTP packetscarrying the Asset. Identifiers referencing the appropriate Package foreach service are signaled by the USBD fragment as described above. MMTPackage Table (MPT) messages with matching MMT_package_id can bedelivered on the MMTP session signaled in the SLT. Each MMTP sessioncarries MMT signaling messages specific to its session or each assetdelivered by the MMTP session.

In other words, it is possible to access USBD of the MMTP session byspecifying an IP destination address/port number, etc. of a packethaving the SLS for a particular service in the SLT. As described in theforegoing, a packet ID of an MMTP packet carrying the SLS may bedesignated as a particular value such as 00, etc. It is possible toaccess an MPT message having a matched packet ID using theabove-described package IP information of USBD. As described below, theMPT message may be used to access each service component/asset.

The following MMTP messages can be delivered by the MMTP sessionsignaled in the SLT.

MMT Package Table (MPT) message: This message carries an MP (MMTPackage) table which contains the list of all Assets and their locationinformation as defined by MMT. If an Asset is delivered by a PLPdifferent from the current PLP delivering the MP table, the identifierof the PLP carrying the Asset can be provided in the MP table usingPhysical Layer Pipe Identifier Descriptor. The physical layer pipeidentifier descriptor will be described below.

MMT ATSC3 (MA3) message mmt_atsc3_message( ): This message carriessystem metadata specific for services including Service Layer Signalingas described above. mmt_atsc3_message( ) will be described below.

The following MMTP messages can be delivered by the MMTP sessionsignaled in the SLT, if required.

Media Presentation Information (MPI) message: This message carries anMPI table which contains the whole document or a subset of a document ofpresentation information. An MP table associated with the MPI table alsocan be delivered by this message.

Clock Relation Information (CRI) message: This message carries a CRItable which contains clock related information for the mapping betweenthe NTP timestamp and the MPEG-2 STC. According to a given embodiment,the CRI message may not be delivered through the MMTP session.

The following MMTP messages can be delivered by each MMTP sessioncarrying streaming content.

Hypothetical Receiver Buffer Model message: This message carriesinformation required by the receiver to manage its buffer.

Hypothetical Receiver Buffer Model Removal message: This message carriesinformation required by the receiver to manage its MMT de-capsulationbuffer.

Hereinafter, a description will be given of mmt_atsc3_message( )corresponding to one of MMT signaling messages. An MMT Signaling messagemmt_atsc3_message( ) is defined to deliver information specific toservices according to the present invention described above. Thesignaling message may include message ID, version, and/or length fieldscorresponding to basic fields of the MMT signaling message. A payload ofthe signaling message may include service ID information, content typeinformation, content version information, content compressioninformation and/or URI information. The content type information mayindicate a type of data included in the payload of the signalingmessage. The content version information may indicate a version of dataincluded in the payload, and the content compression information mayindicate a type of compression applied to the data. The URI informationmay have URI information related to content delivered by the message.

Hereinafter, a description will be given of the physical layer pipeidentifier descriptor.

The physical layer pipe identifier descriptor is a descriptor that canbe used as one of descriptors of the MP table described above. ThePhysical Layer Pipe Identifier Descriptor provides information about thePLP carrying an Asset. If an Asset is delivered by a PLP different fromthe current PLP delivering the MP table, the Physical Layer PipeIdentifier Descriptor can be used as an asset descriptor in theassociated MP table to identify the PLP carrying the Asset. The physicallayer pipe identifier descriptor may further include BSID information inaddition to PLP ID information. The BSID may be an ID of a broadcaststream that delivers an MMTP packet for an asset described by thedescriptor.

FIG. 8 illustrates a link layer protocol architecture according to anembodiment of the present invention.

Hereinafter, a link layer will be described.

The link layer is the layer between the physical layer and the networklayer, and transports the data from the network layer to the physicallayer at the sending side and transports the data from the physicallayer to the network layer at the receiving side. The purpose of thelink layer includes abstracting all input packet types into a singleformat for processing by the physical layer, ensuring flexibility andfuture extensibility for as yet undefined input types. In addition,processing within the link layer ensures that the input data can betransmitted in an efficient manner, for example by providing options tocompress redundant information in the headers of input packets. Theoperations of encapsulation, compression and so on are referred to asthe link layer protocol and packets created using this protocol arecalled link layer packets. The link layer may perform functions such aspacket encapsulation, overhead reduction and/or signaling transmission,etc.

Hereinafter, packet encapsulation will be described. Link Layer protocolallows encapsulation of any type of packet, including ones such as IPpackets and MPEG-2 TS. Using Link Layer protocol, the physical layerneed only process one single packet format, independent of the networklayer protocol type (here we consider MPEG-2 TS packet as a kind ofnetwork layer packet.) Each network layer packet or input packet istransformed into the payload of a generic link layer packet.Additionally, concatenation and segmentation can be performed in orderto use the physical layer resources efficiently when the input packetsizes are particularly small or large.

As described in the foregoing, segmentation may be used in packetencapsulation. When the network layer packet is too large to processeasily in the physical layer, the network layer packet is divided intotwo or more segments. The link layer packet header includes protocolfields to perform segmentation on the sending side and reassembly on thereceiving side. When the network layer packet is segmented, each segmentcan be encapsulated to link layer packet in the same order as originalposition in the network layer packet. Also each link layer packet whichincludes a segment of network layer packet can be transported to PHYlayer consequently.

As described in the foregoing, concatenation may be used in packetencapsulation. When the network layer packet is small enough for thepayload of a link layer packet to include several network layer packets,the link layer packet header includes protocol fields to performconcatenation. The concatenation is combining of multiple small sizednetwork layer packets into one payload. When the network layer packetsare concatenated, each network layer packet can be concatenated topayload of link layer packet in the same order as original input order.Also each packet which constructs a payload of link layer packet can bewhole packet, not a segment of packet.

Hereinafter, overhead reduction will be described. Use of the link layerprotocol can result in significant reduction in overhead for transportof data on the physical layer. The link layer protocol according to thepresent invention may provide IP overhead reduction and/or MPEG-2 TSoverhead reduction. In IP overhead reduction, IP packets have a fixedheader format, however some of the information which is needed in acommunication environment may be redundant in a broadcast environment.Link Layer protocol provides mechanisms to reduce the broadcast overheadby compressing headers of IP packets. In MPEG-2 TS overhead reduction,Link Layer protocol provides sync byte removal, null packet deletionand/or common header removal (compression). First, sync byte removalprovides an overhead reduction of one byte per TS packet, secondly anull packet deletion mechanism removes the 188 byte null TS packets in amanner that they can be re-inserted at the receiver and finally a commonheader removal mechanism.

For signaling transmission, in the link layer protocol, a particularformat for the signaling packet may be provided for link layersignaling, which will be described below.

In the illustrated link layer protocol architecture according to anembodiment of the present invention, Link Layer protocol takes as inputnetwork layer packets such as IPv4, MPEG-2 TS and so on as inputpackets. Future extension indicates other packet types and protocolwhich is also possible to be input in link layer. Link layer protocolalso specifies the format and signaling for any link layer signaling,including information about mapping to specific channel to the physicallayer. Figure also shows how ALP incorporates mechanisms to improve theefficiency of transmission, via various header compression and deletionalgorithms. In addition, the link layer protocol may basicallyencapsulate input packets.

FIG. 9 illustrates a structure of a base header of a link layer packetaccording to an embodiment of the present invention. Hereinafter, thestructure of the header will be described.

A link layer packet can include a header followed by the data payload.The header of a link layer packet can include a base header, and mayinclude an additional header depending on the control fields of the baseheader. The presence of an optional header is indicated from flag fieldsof the additional header. According to a given embodiment, a fieldindicating the presence of an additional header and an optional headermay be positioned in the base header.

Hereinafter, the structure of the base header will be described. Thebase header for link layer packet encapsulation has a hierarchicalstructure. The base header can be two bytes in length and is the minimumlength of the link layer packet header.

The illustrated base header according to the present embodiment mayinclude a Packet_Type field, a PC field and/or a length field. Accordingto a given embodiment, the base header may further include an HM fieldor an S/C field.

Packet_Type field can be a 3-bit field that indicates the originalprotocol or packet type of the input data before encapsulation into alink layer packet. An IPv4 packet, a compressed IP packet, a link layersignaling packet, and other types of packets may have the base headerstructure and may be encapsulated. However, according to a givenembodiment, the MPEG-2 TS packet may have a different particularstructure, and may be encapsulated. When the value of Packet_Type is“000”, “001” “100” or “111”, that is the original data type of an ALPpacket is one of an IPv4 packet, a compressed IP packet, link layersignaling or extension packet. When the MPEG-2 TS packet isencapsulated, the value of Packet_Type can be “010”. Other values of thePacket_Type field may be reserved for future use.

Payload_Configuration (PC) field can be a 1-bit field that indicates theconfiguration of the payload. A value of 0 can indicate that the linklayer packet carries a single, whole input packet and the followingfield is the Header_Mode field. A value of 1 can indicate that the linklayer packet carries more than one input packet (concatenation) or apart of a large input packet (segmentation) and the following field isthe Segmentation_Concatenation field.

Header_Mode (HM) field can be a 1-bit field, when set to 0, that canindicate there is no additional header, and that the length of thepayload of the link layer packet is less than 2048 bytes. This value maybe varied depending on embodiments. A value of 1 can indicate that anadditional header for single packet defined below is present followingthe Length field. In this case, the length of the payload is larger than2047 bytes and/or optional features can be used (sub-streamidentification, header extension, etc.). This value may be varieddepending on embodiments. This field can be present only whenPayload_Configuration field of the link layer packet has a value of 0.

Segmentation_Concatenation (S/C) field can be a 1-bit field, when set to0, that can indicate that the payload carries a segment of an inputpacket and an Additional header for segmentation defined below ispresent following the Length field. A value of 1 can indicate that thepayload carries more than one complete input packet and an Additionalheader for concatenation defined below is present following the Lengthfield. This field can be present only when the value ofPayload_Configuration field of the ALP packet is 1.

Length field can be a 11-bit field that indicates the 11 leastsignificant bits (LSBs) of the length in bytes of payload carried by thelink layer packet. When there is a Length_MSB field in the followingadditional header, the Length field is concatenated with the Length_MSBfield, and is the LSB to provide the actual total length of the payload.The number of bits of the length field may be changed to another valuerather than 11 bits.

Following types of packet configuration are thus possible: a singlepacket without any additional header, a single packet with an additionalheader, a segmented packet and a concatenated packet. According to agiven embodiment, more packet configurations may be made through acombination of each additional header, an optional header, an additionalheader for signaling information to be described below, and anadditional header for time extension.

FIG. 10 illustrates a structure of an additional header of a link layerpacket according to an embodiment of the present invention.

Various types of additional headers may be present. Hereinafter, adescription will be given of an additional header for a single packet.

This additional header for single packet can be present when Header_Mode(HM)=“1”. The Header_Mode (HM) can be set to 1 when the length of thepayload of the link layer packet is larger than 2047 bytes or when theoptional fields are used. The additional header for single packet isshown in Figure (tsib10010).

Length_MSB field can be a 5-bit field that can indicate the mostsignificant bits (MSBs) of the total payload length in bytes in thecurrent link layer packet, and is concatenated with the Length fieldcontaining the 11 least significant bits (LSBs) to obtain the totalpayload length. The maximum length of the payload that can be signaledis therefore 65535 bytes. The number of bits of the length field may bechanged to another value rather than 11 bits. In addition, the number ofbits of the Length_MSB field may be changed, and thus a maximumexpressible payload length may be changed. According to a givenembodiment, each length field may indicate a length of a whole linklayer packet rather than a payload.

SIF (Sub-stream Identifier Flag) field can be a 1-bit field that canindicate whether the sub-stream ID (SID) is present after the HEF fieldor not. When there is no SID in this link layer packet, SIF field can beset to 0. When there is a SID after HEF field in the link layer packet,SIF can be set to 1. The detail of SID is described below.

HEF (Header Extension Flag) field can be a 1-bit field that canindicate, when set to 1 additional header is present for futureextension. A value of 0 can indicate that this extension header is notpresent.

Hereinafter, a description will be given of an additional header whensegmentation is used.

This additional header (tsib10020) can be present whenSegmentation_Concatenation (S/C)=“0”. Segment_Sequence_Number can be a5-bit unsigned integer that can indicate the order of the correspondingsegment carried by the link layer packet. For the link layer packetwhich carries the first segment of an input packet, the value of thisfield can be set to 0x0. This field can be incremented by one with eachadditional segment belonging to the segmented input packet.

Last_Segment_Indicator (LSI) can be a 1-bit field that can indicate,when set to 1, that the segment in this payload is the last one of inputpacket. A value of 0, can indicate that it is not last segment.

SIF (Sub-stream Identifier Flag) can be a 1-bit field that can indicatewhether the SID is present after the HEF field or not. When there is noSID in the link layer packet, SIF field can be set to 0. When there is aSID after the HEF field in the link layer packet, SIF can be set to 1.

HEF (Header Extension Flag) can be a This 1-bit field that can indicate,when set to 1, that the optional header extension is present after theadditional header for future extensions of the link layer header. Avalue of 0 can indicate that optional header extension is not present.

According to a given embodiment, a packet ID field may be additionallyprovided to indicate that each segment is generated from the same inputpacket. This field may be unnecessary and thus be omitted when segmentsare transmitted in order.

Hereinafter, a description will be given of an additional header whenconcatenation is used.

This additional header (tsib10030) can be present whenSegmentation_Concatenation (S/C)=“1”.

Length_MSB can be a 4-bit field that can indicate MSB bits of thepayload length in bytes in this link layer packet. The maximum length ofthe payload is 32767 bytes for concatenation. As described in theforegoing, a specific numeric value may be changed.

Count can be a field that can indicate the number of the packetsincluded in the link layer packet. The number of the packets included inthe link layer packet, 2 can be set to this field. So, its maximum valueof concatenated packets in a link layer packet is 9. A scheme in whichthe count field indicates the number may be varied depending onembodiments. That is, the numbers from 1 to 8 may be indicated.

HEF (Header Extension Flag) can be a 1-bit field that can indicate, whenset to 1 the optional header extension is present after the additionalheader for future extensions of the link layer header. A value of 0, canindicate extension header is not present.

Component_Length can be a is 12-bit length field that can indicate thelength in byte of each packet. Component_Length fields are included inthe same order as the packets present in the payload except lastcomponent packet. The number of length field can be indicated by(Count+1). According to a given embodiment, length fields, the number ofwhich is the same as a value of the count field, may be present. When alink layer header consists of an odd number of Component_Length, fourstuffing bits can follow after the last Component_Length field. Thesebits can be set to 0. According to a given embodiment, aComponent_length field indicating a length of a last concatenated inputpacket may not be present. In this case, the length of the lastconcatenated input packet may correspond to a length obtained bysubtracting a sum of values indicated by respective Component_lengthfields from a whole payload length.

Hereinafter, the optional header will be described.

As described in the foregoing, the optional header may be added to arear of the additional header. The optional header field can contain SIDand/or header extension. The SID is used to filter out specific packetstream in the link layer level. One example of SID is the role ofservice identifier in a link layer stream carrying multiple services.The mapping information between a service and the SID valuecorresponding to the service can be provided in the SLT, if applicable.The header extension contains extended field for future use. Receiverscan ignore any header extensions which they do not understand.

SID (Sub-stream Identifier) can be a 8-bit field that can indicate thesub stream identifier for the link layer packet. If there is optionalheader extension, SID present between additional header and optionalheader extension.

Header_Extension( ) can include the fields defined below.

Extension_Type can be a 8-bit field that can indicate the type of theHeader_Extension( ).

Extension_Length can be a 8-bit field that can indicate the length ofthe Header Extension ( ) in bytes counting from the next byte to thelast byte of the Header_Extension( ).

Extension_Byte can be a byte representing the value of theHeader_Extension( ).

FIG. 11 illustrates a structure of an additional header of a link layerpacket according to another embodiment of the present invention.

Hereinafter, a description will be given of an additional header forsignaling information.

How link layer signaling is incorporated into link layer packets are asfollows. Signaling packets are identified by when the Packet_Type fieldof the base header is equal to 100.

Figure (tsib11010) shows the structure of the link layer packetscontaining additional header for signaling information. In addition tothe link layer header, the link layer packet can consist of twoadditional parts, additional header for signaling information and theactual signaling data itself. The total length of the link layersignaling packet is shown in the link layer packet header.

The additional header for signaling information can include followingfields. According to a given embodiment, some fields may be omitted.

Signaling_Type can be a 8-bit field that can indicate the type ofsignaling.

Signaling_Type_Extension can be a 16-bit filed that can indicate theattribute of the signaling. Detail of this field can be defined insignaling specification.

Signaling_Version can be a 8-bit field that can indicate the version ofsignaling.

Signaling_Format can be a 2-bit field that can indicate the data formatof the signaling data. Here, a signaling format may refer to a dataformat such as a binary format, an XML format, etc.

Signaling_Encoding can be a 2-bit field that can specify theencoding/compression format. This field may indicate whether compressionis not performed and which type of compression is performed.

Hereinafter, a description will be given of an additional header forpacket type extension.

In order to provide a mechanism to allow an almost unlimited number ofadditional protocol and packet types to be carried by link layer in thefuture, the additional header is defined. Packet type extension can beused when Packet_type is 111 in the base header as described above.Figure (tsib11020) shows the structure of the link layer packetscontaining additional header for type extension.

The additional header for type extension can include following fields.According to a given embodiment, some fields may be omitted.

extended_type can be a 16-bit field that can indicate the protocol orpacket type of the input encapsulated in the link layer packet aspayload. This field can not be used for any protocol or packet typealready defined by Packet_Type field.

FIG. 12 illustrates a header structure of a link layer packet for anMPEG-2 TS packet and an encapsulation process thereof according to anembodiment of the present invention.

Hereinafter, a description will be given of a format of the link layerpacket when the MPEG-2 TS packet is input as an input packet.

In this case, the Packet_Type field of the base header is equal to 010.Multiple TS packets can be encapsulated within each link layer packet.The number of TS packets is signaled via the NUMTS field. In this case,as described in the foregoing, a particular link layer packet headerformat may be used.

Link layer provides overhead reduction mechanisms for MPEG-2 TS toenhance the transmission efficiency. The sync byte (0x47) of each TSpacket can be deleted. The option to delete NULL packets and similar TSheaders is also provided.

In order to avoid unnecessary transmission overhead, TS null packets(PID=0x1FFF) may be removed. Deleted null packets can be recovered inreceiver side using DNP field. The DNP field indicates the count ofdeleted null packets. Null packet deletion mechanism using DNP field isdescribed below.

In order to achieve more transmission efficiency, similar header ofMPEG-2 TS packets can be removed. When two or more successive TS packetshave sequentially increased continuity counter fields and other headerfields are the same, the header is sent once at the first packet and theother headers are deleted. HDM field can indicate whether the headerdeletion is performed or not. Detailed procedure of common TS headerdeletion is described below.

When all three overhead reduction mechanisms are performed, overheadreduction can be performed in sequence of sync removal, null packetdeletion, and common header deletion. According to a given embodiment, aperformance order of respective mechanisms may be changed. In addition,some mechanisms may be omitted according to a given embodiment.

The overall structure of the link layer packet header when using MPEG-2TS packet encapsulation is depicted in Figure (tsib12010).

Hereinafter, a description will be given of each illustrated field.Packet_Type can be a 3-bit field that can indicate the protocol type ofinput packet as describe above. For MPEG-2 TS packet encapsulation, thisfield can always be set to 010.

NUMTS (Number of TS packets) can be a 4-bit field that can indicate thenumber of TS packets in the payload of this link layer packet. A maximumof 16 TS packets can be supported in one link layer packet. The value ofNUMTS=0 can indicate that 16 TS packets are carried by the payload ofthe link layer packet. For all other values of NUMTS, the same number ofTS packets are recognized, e.g. NUMTS=0001 means one TS packet iscarried.

AHF (Additional Header Flag) can be a field that can indicate whetherthe additional header is present of not. A value of 0 indicates thatthere is no additional header. A value of 1 indicates that an additionalheader of length 1-byte is present following the base header. If null TSpackets are deleted or TS header compression is applied this field canbe set to 1. The additional header for TS packet encapsulation consistsof the following two fields and is present only when the value of AHF inthis link layer packet is set to 1.

HDM (Header Deletion Mode) can be a 1-bit field that indicates whetherTS header deletion can be applied to this link layer packet. A value of1 indicates that TS header deletion can be applied. A value of “0”indicates that the TS header deletion method is not applied to this linklayer packet.

DNP (Deleted Null Packets) can be a 7-bit field that indicates thenumber of deleted null TS packets prior to this link layer packet. Amaximum of 128 null TS packets can be deleted. When HDM=0 the value ofDNP=0 can indicate that 128 null packets are deleted. When HDM=1 thevalue of DNP=0 can indicate that no null packets are deleted. For allother values of DNP, the same number of null packets are recognized,e.g. DNP=5 means 5 null packets are deleted.

The number of bits of each field described above may be changed.According to the changed number of bits, a minimum/maximum value of avalue indicated by the field may be changed. These numbers may bechanged by a designer.

Hereinafter, SYNC byte removal will be described.

When encapsulating TS packets into the payload of a link layer packet,the SYNC byte (0x47) from the start of each TS packet can be deleted.Hence the length of the MPEG2-TS packet encapsulated in the payload ofthe link layer packet is always of length 187 bytes (instead of 188bytes originally).

Hereinafter, null packet deletion will be described.

Transport Stream rules require that bit rates at the output of atransmitter's multiplexer and at the input of the receiver'sde-multiplexer are constant in time and the end-to-end delay is alsoconstant. For some Transport Stream input signals, null packets may bepresent in order to accommodate variable bitrate services in a constantbitrate stream. In this case, in order to avoid unnecessary transmissionoverhead, TS null packets (that is TS packets with PID=0x1FFF) may beremoved. The process is carried-out in a way that the removed nullpackets can be re-inserted in the receiver in the exact place where theywere originally, thus guaranteeing constant bitrate and avoiding theneed for PCR time stamp updating.

Before generation of a link layer packet, a counter called DNP (DeletedNull-Packets) can first be reset to zero and then incremented for eachdeleted null packet preceding the first non-null TS packet to beencapsulated into the payload of the current link layer packet. Then agroup of consecutive useful TS packets is encapsulated into the payloadof the current link layer packet and the value of each field in itsheader can be determined. After the generated link layer packet isinjected to the physical layer, the DNP is reset to zero. When DNPreaches its maximum allowed value, if the next packet is also a nullpacket, this null packet is kept as a useful packet and encapsulatedinto the payload of the next link layer packet. Each link layer packetcan contain at least one useful TS packet in its payload.

Hereinafter, TS packet header deletion will be described. TS packetheader deletion may be referred to as TS packet header compression.

When two or more successive TS packets have sequentially increasedcontinuity counter fields and other header fields are the same, theheader is sent once at the first packet and the other headers aredeleted. When the duplicated MPEG-2 TS packets are included in two ormore successive TS packets, header deletion can not be applied intransmitter side. HDM field can indicate whether the header deletion isperformed or not. When TS header deletion is performed, HDM can be setto 1. In the receiver side, using the first packet header, the deletedpacket headers are recovered, and the continuity counter is restored byincreasing it in order from that of the first header.

An example tsib12020 illustrated in the figure is an example of aprocess in which an input stream of a TS packet is encapsulated into alink layer packet. First, a TS stream including TS packets having SYNCbyte (0x47) may be input. First, sync bytes may be deleted through async byte deletion process. In this example, it is presumed that nullpacket deletion is not performed.

Here, it is presumed that packet headers of eight TS packets have thesame field values except for CC, that is, a continuity counter fieldvalue. In this case, TS packet deletion/compression may be performed.Seven remaining TS packet headers are deleted except for a first TSpacket header corresponding to CC=1. The processed TS packets may beencapsulated into a payload of the link layer packet.

In a completed link layer packet, a Packet_Type field corresponds to acase in which TS packets are input, and thus may have a value of 010. ANUMTS field may indicate the number of encapsulated TS packets. An AHFfield may be set to 1 to indicate the presence of an additional headersince packet header deletion is performed. An HDM field may be set to 1since header deletion is performed. DNP may be set to 0 since nullpacket deletion is not performed.

FIG. 13 illustrates an example of adaptation modes in IP headercompression according to an embodiment of the present invention(transmitting side).

Hereinafter, IP header compression will be described.

In the link layer, IP header compression/decompression scheme can beprovided. IP header compression can include two parts: headercompressor/decompressor and adaptation module. The header compressionscheme can be based on the Robust Header Compression (ROHC). Inaddition, for broadcasting usage, adaptation function is added.

In the transmitter side, ROHC Compressor reduces the size of header foreach packet. Then, Adaptation module extracts context information andbuilds signaling information from each packet stream. In the receiverside, adaptation module parses the signaling information associated withthe received packet stream and attaches context information to thereceived packet stream. ROHC decompressor reconstructs the original IPpacket by recovering the packet header.

The header compression scheme can be based on the RoHC as describedabove. In particular, in the present system, an RoHC framework canoperate in a unidirectional mode (U mode) of the RoHC. In addition, inthe present system, it is possible to use an RoHC UDP header compressionprofile which is identified by a profile identifier of 0x0002.

Hereinafter, adaptation will be described.

In case of transmission through the unidirectional link, if a receiverhas no information of context, decompressor cannot recover the receivedpacket header until receiving full context. This may cause channelchange delay and turn on delay. For this reason, context information andconfiguration parameters between compressor and decompressor can bealways sent with packet flow.

The Adaptation function provides out-of-band transmission of theconfiguration parameters and context information. Out-of-bandtransmission can be done through the link layer signaling. Therefore,the Adaptation function is used to reduce the channel change delay anddecompression error due to loss of context information.

Hereinafter, extraction of context information will be described.

Context information may be extracted using various schemes according toadaptation mode. In the present invention, three examples will bedescribed below. The scope of the present invention is not restricted tothe examples of the adaptation mode to be described below. Here, theadaptation mode may be referred to as a context extraction mode.

Adaptation Mode 1 (not illustrated) may be a mode in which no additionaloperation is applied to a basic RoHC packet stream. In other words, theadaptation module may operate as a buffer in this mode. Therefore, inthis mode, context information may not be included in link layersignaling.

In Adaptation Mode 2 (tsib13010), the adaptation module can detect theIR packet from ROHC packet flow and extract the context information(static chain). After extracting the context information, each IR packetcan be converted to an IR-DYN packet. The converted IR-DYN packet can beincluded and transmitted inside the ROHC packet flow in the same orderas IR packet, replacing the original packet.

In Adaptation Mode 3 (tsib13020), the adaptation module can detect theIR and IR-DYN packet from ROHC packet flow and extract the contextinformation. The static chain and dynamic chain can be extracted from IRpacket and dynamic chain can be extracted from IR-DYN packet. Afterextracting the context information, each IR and IR-DYN packet can beconverted to a compressed packet. The compressed packet format can bethe same with the next packet of IR or IR-DYN packet. The convertedcompressed packet can be included and transmitted inside the ROHC packetflow in the same order as IR or IR-DYN packet, replacing the originalpacket.

Signaling (Context) information can be encapsulated based ontransmission structure. For example, context information can beencapsulated to the link layer signaling. In this case, the packet typevalue can be set to ‘100’.

In the above-described Adaptation Modes 2 and 3, a link layer packet forcontext information may have a packet type field value of 100. Inaddition, a link layer packet for compressed IP packets may have apacket type field value of 001. The values indicate that each of thesignaling information and the compressed IP packets are included in thelink layer packet as described above.

Hereinafter, a description will be given of a method of transmitting theextracted context information.

The extracted context information can be transmitted separately fromROHC packet flow, with signaling data through specific physical datapath. The transmission of context depends on the configuration of thephysical layer path. The context information can be sent with other linklayer signaling through the signaling data pipe.

In other words, the link layer packet having the context information maybe transmitted through a signaling PLP together with link layer packetshaving other link layer signaling information (Packet_Type=100).Compressed IP packets from which context information is extracted may betransmitted through a general PLP (Packet_Type=001). Here, depending onembodiments, the signaling PLP may refer to an L1 signaling path. Inaddition, depending on embodiments, the signaling PLP may not beseparated from the general PLP, and may refer to a particular andgeneral PLP through which the signaling information is transmitted.

At a receiving side, prior to reception of a packet stream, a receivermay need to acquire signaling information. When receiver decodes initialPLP to acquire the signaling information, the context signaling can bealso received. After the signaling acquisition is done, the PLP toreceive packet stream can be selected. In other words, the receiver mayacquire the signaling information including the context information byselecting the initial PLP. Here, the initial PLP may be theabove-described signaling PLP. Thereafter, the receiver may select a PLPfor acquiring a packet stream. In this way, the context information maybe acquired prior to reception of the packet stream.

After the PLP for acquiring the packet stream is selected, theadaptation module can detect IR-DYN packet form received packet flow.Then, the adaptation module parses the static chain from the contextinformation in the signaling data. This is similar to receiving the IRpacket. For the same context identifier, IR-DYN packet can be recoveredto IR packet. Recovered ROHC packet flow can be sent to ROHCdecompressor. Thereafter, decompression may be started.

FIG. 14 illustrates a link mapping table (LMT) and an RoHC-U descriptiontable according to an embodiment of the present invention.

Hereinafter, link layer signaling will be described.

Generally, link layer signaling is operates under IP level. In thereceiver side, link layer signaling can be obtained earlier than IPlevel signaling such as Service List Table (SLT) and Service LayerSignaling (SLS). Therefore, link layer signaling can be obtained beforesession establishment.

For link layer signaling, there can be two kinds of signaling accordinginput path: internal link layer signaling and external link layersignaling. The internal link layer signaling is generated in link layerat transmitter side. And the link layer takes the signaling fromexternal module or protocol. This kind of signaling information isconsidered as external link layer signaling. If some signaling need tobe obtained prior to IP level signaling, external signaling istransmitted in format of link layer packet.

The link layer signaling can be encapsulated into link layer packet asdescribed above. The link layer packets can carry any format of linklayer signaling, including binary and XML. The same signalinginformation may not be transmitted in different formats for the linklayer signaling.

Internal link layer signaling may include signaling information for linkmapping. The Link Mapping Table (LMT) provides a list of upper layersessions carried in a PLP. The LMT also provides addition informationfor processing the link layer packets carrying the upper layer sessionsin the link layer.

An example of the LMT (tsib14010) according to the present invention isillustrated.

signaling_type can be an 8-bit unsigned integer field that indicates thetype of signaling carried by this table. The value of signaling_typefield for Link Mapping Table (LMT) can be set to 0x01.

PLP_ID can be an 8-bit field that indicates the PLP corresponding tothis table.

num_session can be an 8-bit unsigned integer field that provides thenumber of upper layer sessions carried in the PLP identified by theabove PLP_ID field. When the value of signaling_type field is 0x01, thisfield can indicate the number of UDP/IP sessions in the PLP.

src_IP_add can be a 32-bit unsigned integer field that contains thesource IP address of an upper layer session carried in the PLPidentified by the PLP ID field.

dst_IP_add can be a 32-bit unsigned integer field that contains thedestination IP address of an upper layer session carried in the PLPidentified by the PLP_ID field.

src_UDP_port can be a 16-bit unsigned integer field that represents thesource UDP port number of an upper layer session carried in the PLPidentified by the PLP ID field.

dst_UDP_port can be a 16-bit unsigned integer field that represents thedestination UDP port number of an upper layer session carried in the PLPidentified by the PLP_ID field.

SID_flag can be a 1-bit Boolean field that indicates whether the linklayer packet carrying the upper layer session identified by above 4fields, Src_IP_add, Dst_IP_add, Src_UDP_Port and Dst_UDP_Port, has anSID field in its optional header. When the value of this field is set to0, the link layer packet carrying the upper layer session may not havean SID field in its optional header. When the value of this field is setto 1, the link layer packet carrying the upper layer session can have anSID field in its optional header and the value the SID field can be sameas the following SID field in this table.

compressed_flag can be a 1-bit Boolean field that indicates whether theheader compression is applied the link layer packets carrying the upperlayer session identified by above 4 fields, Src_IP_add, Dst_IP_add,Src_UDP_Port and Dst_UDP_Port. When the value of this field is set to 0,the link layer packet carrying the upper layer session may have a valueof 0x00 of Packet_Type field in its base header. When the value of thisfield is set to 1, the link layer packet carrying the upper layersession may have a value of 0x01 of Packet_Type field in its base headerand the Context_ID field can be present.

SID can be an 8-bit unsigned integer field that indicates sub-streamidentifier for the link layer packets carrying the upper layer sessionidentified by above 4 fields, Src_IP_add, Dst_IP_add, Src_UDP_Port andDst_UDP_Port. This field can be present when the value of SID_flag isequal to 1.

context_id can be an 8-bit field that provides a reference for thecontext id (CID) provided in the ROHC-U description table. This fieldcan be present when the value of compressed_flag is equal to 1.

An example of the RoHC-U description table (tsib14020) according to thepresent invention is illustrated. As described in the foregoing, theRoHC-U adaptation module may generate information related to headercompression.

signaling_type can be an 8-bit field that indicates the type ofsignaling carried by this table. The value of signaling_type field forROHC-U description table (RDT) can be set to “0x02”.

PLP_ID can be an 8-bit field that indicates the PLP corresponding tothis table.

context_id can be an 8-bit field that indicates the context id (CID) ofthe compressed IP stream. In this system, 8-bit CID can be used forlarge CID.

context_profile can be an 8-bit field that indicates the range ofprotocols used to compress the stream. This field can be omitted.

adaptation_mode can be a 2-bit field that indicates the mode ofadaptation module in this PLP. Adaptation modes have been describedabove.

context_config can be a 2-bit field that indicates the combination ofthe context information. If there is no context information in thistable, this field may be set to ‘0x0’. If the static_chain( ) ordynamic_chain( ) byte is included in this table, this field may be setto ‘0x01’ or ‘0x02’ respectively. If both of the static_chain( ) anddynamic_chain( ) byte are included in this table, this field may be setto ‘0x03’.

context_length can be an 8-bit field that indicates the length of thestatic chain byte sequence. This field can be omitted.

static_chain_byte( ) can be a field that conveys the static informationused to initialize the ROHC-U decompressor. The size and structure ofthis field depend on the context profile.

dynamic_chain_byte( ) can be a field that conveys the dynamicinformation used to initialize the ROHC-U decompressor. The size andstructure of this field depend on the context profile.

The static_chain_byte can be defined as sub-header information of IRpacket. The dynamic_chain_byte can be defined as sub-header informationof IR packet and IR-DYN packet.

FIG. 15 illustrates a structure of a link layer on a transmitter sideaccording to an embodiment of the present invention.

The present embodiment presumes that an IP packet is processed. From afunctional point of view, the link layer on the transmitter side maybroadly include a link layer signaling part in which signalinginformation is processed, an overhead reduction part, and/or anencapsulation part. In addition, the link layer on the transmitter sidemay include a scheduler for controlling and scheduling an overalloperation of the link layer and/or input and output parts of the linklayer.

First, signaling information of an upper layer and/or a system parametertsib15010 may be delivered to the link layer. In addition, an IP streamincluding IP packets may be delivered to the link layer from an IP layertsib15110.

As described above, the scheduler tsib15020 may determine and controloperations of several modules included in the link layer. The deliveredsignaling information and/or system parameter tsib15010 may be filtereror used by the scheduler tsib15020. Information, which corresponds to apart of the delivered signaling information and/or system parametertsib15010, necessary for a receiver may be delivered to the link layersignaling part. In addition, information, which corresponds to a part ofthe signaling information, necessary for an operation of the link layermay be delivered to an overhead reduction controller tsib15120 or anencapsulation controller tsib15180.

The link layer signaling part may collect information to be transmittedas a signal in a physical layer, and convert/configure the informationin a form suitable for transmission. The link layer signaling part mayinclude a signaling manager tsib15030, a signaling formatter tsib15040,and/or a buffer for channels tsib15050.

The signaling manager tsib15030 may receive signaling informationdelivered from the scheduler tsib15020 and/or signaling (and/or context)information delivered from the overhead reduction part. The signalingmanager tsib15030 may determine a path for transmission of the signalinginformation for delivered data. The signaling information may bedelivered through the path determined by the signaling managertsib15030. As described in the foregoing, signaling information to betransmitted through a divided channel such as the FIC, the EAS, etc. maybe delivered to the signaling formatter tsib15040, and other signalinginformation may be delivered to an encapsulation buffer tsib15070.

The signaling formatter tsib15040 may format related signalinginformation in a form suitable for each divided channel such thatsignaling information may be transmitted through a separately dividedchannel. As described in the foregoing, the physical layer may includeseparate physically/logically divided channels. The divided channels maybe used to transmit FIC signaling information or EAS-relatedinformation. The FIC or EAS-related information may be sorted by thesignaling manager tsib15030, and input to the signaling formattertsib15040. The signaling formatter tsib15040 may format the informationbased on each separate channel. When the physical layer is designed totransmit particular signaling information through a separately dividedchannel other than the FIC and the EAS, a signaling formatter for theparticular signaling information may be additionally provided. Throughthis scheme, the link layer may be compatible with various physicallayers.

The buffer for channels tsib15050 may deliver the signaling informationreceived from the signaling formatter tsib15040 to separate dedicatedchannels tsib15060. The number and content of the separate channels mayvary depending on embodiments.

As described in the foregoing, the signaling manager tsib15030 maydeliver signaling information, which is not delivered to a particularchannel, to the encapsulation buffer tsib15070. The encapsulation buffertsib15070 may function as a buffer that receives the signalinginformation which is not delivered to the particular channel.

An encapsulation block for signaling information tsib15080 mayencapsulate the signaling information which is not delivered to theparticular channel. A transmission buffer tsib15090 may function as abuffer that delivers the encapsulated signaling information to a DP forsignaling information tsib15100. Here, the DP for signaling informationtsib15100 may refer to the above-described PLS region.

The overhead reduction part may allow efficient transmission by removingoverhead of packets delivered to the link layer. It is possible toconfigure overhead reduction parts corresponding to the number of IPstreams input to the link layer.

An overhead reduction buffer tsib15130 may receive an IP packetdelivered from an upper layer. The received IP packet may be input tothe overhead reduction part through the overhead reduction buffertsib15130.

An overhead reduction controller tsib15120 may determine whether toperform overhead reduction on a packet stream input to the overheadreduction buffer tsib15130. The overhead reduction controller tsib15120may determine whether to perform overhead reduction for each packetstream. When overhead reduction is performed on a packet stream, packetsmay be delivered to a robust header compression (RoHC) compressortsib15140 to perform overhead reduction. When overhead reduction is notperformed on a packet stream, packets may be delivered to theencapsulation part to perform encapsulation without overhead reduction.Whether to perform overhead reduction of packets may be determined basedon the signaling information tsib15010 delivered to the link layer. Thesignaling information may be delivered to the encapsulation controllertsib15180 by the scheduler tsib15020.

The RoHC compressor tsib15140 may perform overhead reduction on a packetstream. The RoHC compressor tsib15140 may perform an operation ofcompressing a header of a packet. Various schemes may be used foroverhead reduction. Overhead reduction may be performed using a schemeproposed by the present invention. The present invention presumes an IPstream, and thus an expression “RoHC compressor” is used. However, thename may be changed depending on embodiments. The operation is notrestricted to compression of the IP stream, and overhead reduction ofall types of packets may be performed by the RoHC compressor tsib15140.

A packet stream configuration block tsib15150 may separate informationto be transmitted to a signaling region and information to betransmitted to a packet stream from IP packets having compressedheaders. The information to be transmitted to the packet stream mayrefer to information to be transmitted to a DP region. The informationto be transmitted to the signaling region may be delivered to asignaling and/or context controller tsib15160.

The information to be transmitted to the packet stream may betransmitted to the encapsulation part.

The signaling and/or context controller tsib15160 may collect signalingand/or context information and deliver the signaling and/or contextinformation to the signaling manager in order to transmit the signalingand/or context information to the signaling region.

The encapsulation part may perform an operation of encapsulating packetsin a form suitable for a delivery to the physical layer. It is possibleto configure encapsulation parts corresponding to the number of IPstreams.

An encapsulation buffer tsib15170 may receive a packet stream forencapsulation. Packets subjected to overhead reduction may be receivedwhen overhead reduction is performed, and an input IP packet may bereceived without change when overhead reduction is not performed.

An encapsulation controller tsib15180 may determine whether toencapsulate an input packet stream. When encapsulation is performed, thepacket stream may be delivered to a segmentation/concatenation blocktsib15190. When encapsulation is not performed, the packet stream may bedelivered to a transmission buffer tsib15230. Whether to encapsulatepackets may be determined based on the signaling information tsib15010delivered to the link layer. The signaling information may be deliveredto the encapsulation controller tsib15180 by the scheduler tsib15020.

In the segmentation/concatenation block tsib15190, the above-describedsegmentation or concatenation operation may be performed on packets. Inother words, when an input IP packet is longer than a link layer packetcorresponding to an output of the link layer, one IP packet may besegmented into several segments to configure a plurality of link layerpacket payloads. On the other hand, when an input IP packet is shorterthan a link layer packet corresponding to an output of the link layer,several IP packets may be concatenated to configure one link layerpacket payload.

A packet configuration table tsib15200 may have configurationinformation of a segmented and/or concatenated link layer packet. Atransmitter and a receiver may have the same information in the packetconfiguration table tsib15200. The transmitter and the receiver mayrefer to the information of the packet configuration table tsib15200. Anindex value of the information of the packet configuration tabletsib15200 may be included in a header of the link layer packet.

A link layer header information block tsib15210 may collect headerinformation generated in an encapsulation process. In addition, the linklayer header information block tsib15210 may collect header informationincluded in the packet configuration table tsib15200. The link layerheader information block tsib15210 may configure header informationaccording to a header structure of the link layer packet.

A header attachment block tsib15220 may add a header to a payload of asegmented and/or concatenated link layer packet. The transmission buffertsib15230 may function as a buffer to deliver the link layer packet to aDP tsib15240 of the physical layer.

The respective blocks, modules, or parts may be configured as onemodule/protocol or a plurality of modules/protocols in the link layer.

FIG. 16 illustrates a structure of a link layer on a receiver sideaccording to an embodiment of the present invention.

The present embodiment presumes that an IP packet is processed. From afunctional point of view, the link layer on the receiver side maybroadly include a link layer signaling part in which signalinginformation is processed, an overhead processing part, and/or adecapsulation part. In addition, the link layer on the receiver side mayinclude a scheduler for controlling and scheduling overall operation ofthe link layer and/or input and output parts of the link layer.

First, information received through a physical layer may be delivered tothe link layer. The link layer may process the information, restore anoriginal state before being processed at a transmitter side, and thendeliver the information to an upper layer. In the present embodiment,the upper layer may be an IP layer.

Information, which is separated in the physical layer and deliveredthrough a particular channel tsib16030, may be delivered to a link layersignaling part. The link layer signaling part may determine signalinginformation received from the physical layer, and deliver the determinedsignaling information to each part of the link layer.

A buffer for channels tsib16040 may function as a buffer that receivessignaling information transmitted through particular channels. Asdescribed in the foregoing, when physically/logically divided separatechannels are present in the physical layer, it is possible to receivesignaling information transmitted through the channels. When theinformation received from the separate channels is segmented, thesegmented information may be stored until complete information isconfigured.

A signaling decoder/parser tsib16050 may verify a format of thesignaling information received through the particular channel, andextract information to be used in the link layer. When the signalinginformation received through the particular channel is encoded, decodingmay be performed. In addition, according to a given embodiment, it ispossible to verify integrity, etc. of the signaling information.

A signaling manager tsib16060 may integrate signaling informationreceived through several paths. Signaling information received through aDP for signaling tsib16070 to be described below may be integrated inthe signaling manager tsib16060. The signaling manager tsib16060 maydeliver signaling information necessary for each part in the link layer.For example, the signaling manager tsib16060 may deliver contextinformation, etc. for recovery of a packet to the overhead processingpart. In addition, the signaling manager tsib16060 may deliver signalinginformation for control to a scheduler tsib16020.

General signaling information, which is not received through a separateparticular channel, may be received through the DP for signalingtsib16070. Here, the DP for signaling may refer to PLS, L1, etc. Here,the DP may be referred to as a PLP. A reception buffer tsib16080 mayfunction as a buffer that receives signaling information delivered fromthe DP for signaling. In a decapsulation block for signaling informationtsib16090, the received signaling information may be decapsulated. Thedecapsulated signaling information may be delivered to the signalingmanager tsib16060 through a decapsulation buffer tsib16100. As describedin the foregoing, the signaling manager tsib16060 may collate signalinginformation, and deliver the collated signaling information to anecessary part in the link layer.

The scheduler tsib16020 may determine and control operations of severalmodules included in the link layer. The scheduler tsib16020 may controleach part of the link layer using receiver information tsib16010 and/orinformation delivered from the signaling manager tsib16060. In addition,the scheduler tsib16020 may determine an operation mode, etc. of eachpart. Here, the receiver information tsib16010 may refer to informationpreviously stored in the receiver. The scheduler tsib16020 may useinformation changed by a user such as channel switching, etc. to performa control operation.

The decapsulation part may filter a packet received from a DP tsib16110of the physical layer, and separate a packet according to a type of thepacket. It is possible to configure decapsulation parts corresponding tothe number of DPs that can be simultaneously decoded in the physicallayer.

The decapsulation buffer tsib16100 may function as a buffer thatreceives a packet stream from the physical layer to performdecapsulation. A decapsulation controller tsib16130 may determinewhether to decapsulate an input packet stream. When decapsulation isperformed, the packet stream may be delivered to a link layer headerparser tsib16140. When decapsulation is not performed, the packet streammay be delivered to an output buffer tsib16220. The signalinginformation received from the scheduler tsib16020 may be used todetermine whether to perform decapsulation.

The link layer header parser tsib16140 may identify a header of thedelivered link layer packet. It is possible to identify a configurationof an IP packet included in a payload of the link layer packet byidentifying the header. For example, the IP packet may be segmented orconcatenated.

A packet configuration table tsib16150 may include payload informationof segmented and/or concatenated link layer packets. The transmitter andthe receiver may have the same information in the packet configurationtable tsib16150. The transmitter and the receiver may refer to theinformation of the packet configuration table tsib16150. It is possibleto find a value necessary for reassembly based on index informationincluded in the link layer packet.

A reassembly block tsib16160 may configure payloads of the segmentedand/or concatenated link layer packets as packets of an original IPstream. Segments may be collected and reconfigured as one IP packet, orconcatenated packets may be separated and reconfigured as a plurality ofIP packet streams. Recombined IP packets may be delivered to theoverhead processing part.

The overhead processing part may perform an operation of restoring apacket subjected to overhead reduction to an original packet as areverse operation of overhead reduction performed in the transmitter.This operation may be referred to as overhead processing. It is possibleto configure overhead processing parts corresponding to the number ofDPs that can be simultaneously decoded in the physical layer.

A packet recovery buffer tsib16170 may function as a buffer thatreceives a decapsulated RoHC packet or IP packet to perform overheadprocessing.

An overhead controller tsib16180 may determine whether to recover and/ordecompress the decapsulated packet. When recovery and/or decompressionare performed, the packet may be delivered to a packet stream recoveryblock tsib16190. When recovery and/or decompression are not performed,the packet may be delivered to the output buffer tsib16220. Whether toperform recovery and/or decompression may be determined based on thesignaling information delivered by the scheduler tsib16020.

The packet stream recovery block tsib16190 may perform an operation ofintegrating a packet stream separated from the transmitter with contextinformation of the packet stream. This operation may be a process ofrestoring a packet stream such that an RoHC decompressor tsib16210 canperform processing. In this process, it is possible to receive signalinginformation and/or context information from a signaling and/or contextcontroller tsib16200. The signaling and/or context controller tsib16200may determine signaling information delivered from the transmitter, anddeliver the signaling information to the packet stream recovery blocktsib16190 such that the signaling information may be mapped to a streamcorresponding to a context ID.

The RoHC decompressor tsib16210 may restore headers of packets of thepacket stream. The packets of the packet stream may be restored to formsof original IP packets through restoration of the headers. In otherwords, the RoHC decompressor tsib16210 may perform overhead processing.

The output buffer tsib16220 may function as a buffer before an outputstream is delivered to an IP layer tsib16230.

The link layers of the transmitter and the receiver proposed in thepresent invention may include the blocks or modules described above. Inthis way, the link layer may independently operate irrespective of anupper layer and a lower layer, overhead reduction may be efficientlyperformed, and a supportable function according to an upper/lower layermay be easily defined/added/deleted.

FIG. 17 illustrates a configuration of signaling transmission through alink layer according to an embodiment of the present invention(transmitting/receiving sides).

In the present invention, a plurality of service providers(broadcasters) may provide services within one frequency band. Inaddition, a service provider may provide a plurality of services, andone service may include one or more components. It can be consideredthat the user receives content using a service as a unit.

The present invention presumes that a transmission protocol based on aplurality of sessions is used to support an IP hybrid broadcast.Signaling information delivered through a signaling path may bedetermined based on a transmission configuration of each protocol.Various names may be applied to respective protocols according to agiven embodiment.

In the illustrated data configuration tsib17010 on the transmittingside, service providers (broadcasters) may provide a plurality ofservices (Service #1, #2, . . . ). In general, a signal for a servicemay be transmitted through a general transmission session (signaling C).However, the signal may be transmitted through a particular session(dedicated session) according to a given embodiment (signaling B).

Service data and service signaling information may be encapsulatedaccording to a transmission protocol. According to a given embodiment,an IP/UDP layer may be used. According to a given embodiment, a signalin the IP/UDP layer (signaling A) may be additionally provided. Thissignaling may be omitted.

Data processed using the IP/UDP may be input to the link layer. Asdescribed in the foregoing, overhead reduction and/or encapsulation maybe performed in the link layer. Here, link layer signaling may beadditionally provided. Link layer signaling may include a systemparameter, etc. Link layer signaling has been described above.

The service data and the signaling information subjected to the aboveprocess may be processed through PLPs in a physical layer. Here, a PLPmay be referred to as a DP. The example illustrated in the figurepresumes a case in which a base DP/PLP is used. However, depending onembodiments, transmission may be performed using only a general DP/PLPwithout the base DP/PLP.

In the example illustrated in the figure, a particular channel(dedicated channel) such as an FIC, an EAC, etc. is used. A signaldelivered through the FIC may be referred to as a fast information table(FIT), and a signal delivered through the EAC may be referred to as anemergency alert table (EAT). The FIT may be identical to theabove-described SLT. The particular channels may not be used dependingon embodiments. When the particular channel (dedicated channel) is notconfigured, the FIT and the EAT may be transmitted using a general linklayer signaling transmission scheme, or transmitted using a PLP via theIP/UDP as other service data.

According to a given embodiment, system parameters may include atransmitter-related parameter, a service provider-related parameter,etc. Link layer signaling may include IP header compression-relatedcontext information and/or identification information of data to whichthe context is applied. Signaling of an upper layer may include an IPaddress, a UDP number, service/component information, emergencyalert-related information, an IP/UDP address for service signaling, asession ID, etc. Detailed examples thereof have been described above.

In the illustrated data configuration tsib17020 on the receiving side,the receiver may decode only a PLP for a corresponding service usingsignaling information without having to decode all PLPs.

First, when the user selects or changes a service desired to bereceived, the receiver may be tuned to a corresponding frequency and mayread receiver information related to a corresponding channel stored in aDB, etc. The information stored in the DB, etc. of the receiver may beconfigured by reading an SLT at the time of initial channel scan.

After receiving the SLT and the information about the correspondingchannel, information previously stored in the DB is updated, andinformation about a transmission path of the service selected by theuser and information about a path, through which component informationis acquired or a signal necessary to acquire the information istransmitted, are acquired. When the information is not determined to bechanged using version information of the SLT, decoding or parsing may beomitted.

The receiver may verify whether SLT information is included in a PLP byparsing physical signaling of the PLP in a corresponding broadcaststream (not illustrated), which may be indicated through a particularfield of physical signaling. It is possible to access a position atwhich a service layer signal of a particular service is transmitted byaccessing the SLT information. The service layer signal may beencapsulated into the IP/UDP and delivered through a transmissionsession. It is possible to acquire information about a componentincluded in the service using this service layer signaling. A specificSLT-SLS configuration is as described above.

In other words, it is possible to acquire transmission path information,for receiving upper layer signaling information (service signalinginformation) necessary to receive the service, corresponding to one ofseveral packet streams and PLPs currently transmitted on a channel usingthe SLT. The transmission path information may include an IP address, aUDP port number, a session ID, a PLP ID, etc. Here, depending onembodiments, a value previously designated by the IANA or a system maybe used as an IP/UDP address. The information may be acquired using ascheme of accessing a DB or a shared memory, etc.

When the link layer signal and service data are transmitted through thesame PLP, or only one PLP is operated, service data delivered throughthe PLP may be temporarily stored in a device such as a buffer, etc.while the link layer signal is decoded.

It is possible to acquire information about a path through which theservice is actually transmitted using service signaling information of aservice to be received. In addition, a received packet stream may besubjected to decapsulation and header recovery using information such asoverhead reduction for a PLP to be received, etc.

In the illustrated example (tsib17020), the FIC and the EAC are used,and a concept of the base DP/PLP is presumed. As described in theforegoing, concepts of the FIC, the EAC, and the base DP/PLP may not beused.

While MISO or MIMO uses two antennas in the following for convenience ofdescription, the present invention is applicable to systems using two ormore antennas. The present invention proposes a physical profile (orsystem) optimized to minimize receiver complexity while attaining theperformance required for a particular use case. Physical (PHY) profiles(base, handheld and advanced profiles) according to an embodiment of thepresent invention are subsets of all configurations that a correspondingreceiver should implement. The PHY profiles share most of the functionalblocks but differ slightly in specific blocks and/or parameters. For thesystem evolution, future profiles may also be multiplexed with existingprofiles in a single radio frequency (RF) channel through a futureextension frame (FEF). The base profile and the handheld profileaccording to the embodiment of the present invention refer to profilesto which MIMO is not applied, and the advanced profile refers to aprofile to which MIMO is applied. The base profile may be used as aprofile for both the terrestrial broadcast service and the mobilebroadcast service. That is, the base profile may be used to define aconcept of a profile which includes the mobile profile. In addition, theadvanced profile may be divided into an advanced profile for a baseprofile with MIMO and an advanced profile for a handheld profile withMIMO. Moreover, the profiles may be changed according to intention ofthe designer.

The following terms and definitions may be applied to the presentinvention. The following terms and definitions may be changed accordingto design.

Auxiliary stream: sequence of cells carrying data of as yet undefinedmodulation and coding, which may be used for future extensions or asrequired by broadcasters or network operators

Base data pipe: data pipe that carries service signaling data.

Baseband frame (or BBFRAME): set of Kbch bits which form the input toone FEC encoding process (BCH and LDPC encoding).

Cell: modulation value that is carried by one carrier of orthogonalfrequency division multiplexing (OFDM) transmission.

Coded block: LDPC-encoded block of PLS1 data or one of the LDPC-encodedblocks of PLS2 data.

Data pipe: logical channel in the physical layer that carries servicedata or related metadata, which may carry one or a plurality ofservice(s) or service component(s).

Data pipe unit (DPU): a basic unit for allocating data cells to a DP ina frame.

Data symbol: OFDM symbol in a frame which is not a preamble symbol (thedata symbol encompasses the frame signaling symbol and frame edgesymbol).

DP_ID: this 8-bit field identifies uniquely a DP within the systemidentified by the SYSTEM_ID.

Dummy cell: cell carrying a pseudo-random value used to fill theremaining capacity not used for PLS signaling, DPs or auxiliary streams.

Emergency alert channel (EAC): part of a frame that carries EASinformation data.

Frame: physical layer time slot that starts with a preamble and endswith a frame edge symbol.

Frame repetition unit: a set of frames belonging to the same ordifferent physical layer profiles including an FEF, which is repeatedeight times in a superframe.

Fast information channel (FIC): a logical channel in a frame thatcarries mapping information between a service and the corresponding baseDP.

FECBLOCK: set of LDPC-encoded bits of DP data.

FFT size: nominal FFT size used for a particular mode, equal to theactive symbol period Ts expressed in cycles of an elementary period T.

Frame signaling symbol: OFDM symbol with higher pilot density used atthe start of a frame in certain combinations of FFT size, guard intervaland scattered pilot pattern, which carries a part of the PLS data.

Frame edge symbol: OFDM symbol with higher pilot density used at the endof a frame in certain combinations of FFT size, guard interval andscattered pilot pattern.

Frame group: the set of all frames having the same PHY profile type in asuperframe.

Future extension frame: physical layer time slot within the superframethat may be used for future extension, which starts with a preamble.

Futurecast UTB system: proposed physical layer broadcast system, theinput of which is one or more MPEG2-TS, IP or general stream(s) and theoutput of which is an RF signal.

Input stream: a stream of data for an ensemble of services delivered tothe end users by the system.

Normal data symbol: data symbol excluding the frame signaling symbol andthe frame edge symbol.

PHY profile: subset of all configurations that a corresponding receivershould implement.

PLS: physical layer signaling data including PLS1 and PLS2.

PLS1: a first set of PLS data carried in a frame signaling symbol (FSS)having a fixed size, coding and modulation, which carries basicinformation about a system as well as parameters needed to decode PLS2.

NOTE: PLS1 data remains constant for the duration of a frame group.

PLS2: a second set of PLS data transmitted in the FSS, which carriesmore detailed PLS data about the system and the DPs.

PLS2 dynamic data: PLS2 data that dynamically changes frame-by-frame.

PLS2 static data: PLS2 data that remains static for the duration of aframe group.

Preamble signaling data: signaling data carried by the preamble symboland used to identify the basic mode of the system.

Preamble symbol: fixed-length pilot symbol that carries basic PLS dataand is located at the beginning of a frame.

The preamble symbol is mainly used for fast initial band scan to detectthe system signal, timing thereof, frequency offset, and FFT size.

Reserved for future use: not defined by the present document but may bedefined in future.

Superframe: set of eight frame repetition units.

Time interleaving block (TI block): set of cells within which timeinterleaving is carried out, corresponding to one use of a timeinterleaver memory.

TI group: unit over which dynamic capacity allocation for a particularDP is carried out, made up of an integer, dynamically varying number ofXFECBLOCKs.

NOTE: The TI group may be mapped directly to one frame or may be mappedto a plurality of frames. The TI group may contain one or more TIblocks.

Type 1 DP: DP of a frame where all DPs are mapped to the frame in timedivision multiplexing (TDM) scheme.

Type 2 DP: DP of a frame where all DPs are mapped to the frame infrequency division multiplexing (FDM) scheme.

XFECBLOCK: set of N_(cells) cells carrying all the bits of one LDPCFECBLOCK.

FIG. 18 illustrates a configuration of a broadcast signal transmissionapparatus for future broadcast services according to an embodiment ofthe present invention.

The broadcast signal transmission apparatus for future broadcastservices according to the present embodiment may include an inputformatting block 1000, a bit interleaved coding & modulation (BICM)block 1010, a frame building block 1020, an OFDM generation block 1030and a signaling generation block 1040. Description will be given of anoperation of each block of the broadcast signal transmission apparatus.

In input data according to an embodiment of the present invention, IPstream/packets and MPEG2-TS may be main input formats, and other streamtypes are handled as general streams. In addition to these data inputs,management information is input to control scheduling and allocation ofthe corresponding bandwidth for each input stream. In addition, thepresent invention allows simultaneous input of one or a plurality of TSstreams, IP stream(s) and/or a general stream(s).

The input formatting block 1000 may demultiplex each input stream intoone or a plurality of data pipes, to each of which independent codingand modulation are applied. A DP is the basic unit for robustnesscontrol, which affects QoS. One or a plurality of services or servicecomponents may be carried by one DP. The DP is a logical channel in aphysical layer for delivering service data or related metadata capableof carrying one or a plurality of services or service components.

In addition, a DPU is a basic unit for allocating data cells to a DP inone frame.

An input to the physical layer may include one or a plurality of datastreams. Each of the data streams is delivered by one DP. The inputformatting block 1000 may covert a data stream input through one or morephysical paths (or DPs) into a baseband frame (BBF). In this case, theinput formatting block 1000 may perform null packet deletion or headercompression on input data (a TS or IP input stream) in order to enhancetransmission efficiency. A receiver may have a priori information for aparticular part of a header, and thus this known information may bedeleted from a transmitter. A null packet deletion block 3030 may beused only for a TS input stream.

In the BICM block 1010, parity data is added for error correction andencoded bit streams are mapped to complex-value constellation symbols.The symbols are interleaved across a specific interleaving depth that isused for the corresponding DP. For the advanced profile, MIMO encodingis performed in the BICM block 1010 and an additional data path is addedat the output for MIMO transmission.

The frame building block 1020 may map the data cells of the input DPsinto the OFDM symbols within a frame, and perform frequency interleavingfor frequency-domain diversity, especially to combat frequency-selectivefading channels. The frame building block 1020 may include a delaycompensation block, a cell mapper and a frequency interleaver.

The delay compensation block may adjust timing between DPs andcorresponding PLS data to ensure that the DPs and the corresponding PLSdata are co-timed at a transmitter side. The PLS data is delayed by thesame amount as the data pipes by addressing the delays of data pipescaused by the input formatting block and BICM block. The delay of theBICM block is mainly due to the time interleaver. In-band signaling datacarries information of the next TI group so that the information iscarried one frame ahead of the DPs to be signaled. The delaycompensation block delays in-band signaling data accordingly.

The cell mapper may map PLS, DPs, auxiliary streams, dummy cells, etc.to active carriers of the OFDM symbols in the frame. The basic functionof the cell mapper 7010 is to map data cells produced by the TIs foreach of the DPs, PLS cells, and EAC/FIC cells, if any, into arrays ofactive OFDM cells corresponding to each of the OFDM symbols within aframe. A basic function of the cell mapper is to map a data cellgenerated by time interleaving for each DP and PLS cell to an array ofactive OFDM cells (if present) corresponding to respective OFDM symbolsin one frame. Service signaling data (such as program specificinformation (PSI)/SI) may be separately gathered and sent by a DP. Thecell mapper operates according to dynamic information produced by ascheduler and the configuration of a frame structure. The frequencyinterleaver may randomly interleave data cells received from the cellmapper to provide frequency diversity. In addition, the frequencyinterleaver may operate on an OFDM symbol pair including two sequentialOFDM symbols using a different interleaving-seed order to obtain maximuminterleaving gain in a single frame.

The OFDM generation block 1030 modulates OFDM carriers by cells producedby the frame building block, inserts pilots, and produces a time domainsignal for transmission. In addition, this block subsequently insertsguard intervals, and applies peak-to-average power ratio (PAPR)reduction processing to produce a final RF signal.

Specifically, after inserting a preamble at the beginning of each frame,the OFDM generation block 1030 may apply conventional OFDM modulationhaving a cyclic prefix as a guard interval. For antenna space diversity,a distributed MISO scheme is applied across transmitters. In addition, aPAPR scheme is performed in the time domain. For flexible networkplanning, the present invention provides a set of various FFT sizes,guard interval lengths and corresponding pilot patterns.

In addition, the present invention may multiplex signals of a pluralityof broadcast transmission/reception systems in the time domain such thatdata of two or more different broadcast transmission/reception systemsproviding broadcast services may be simultaneously transmitted in thesame RF signal bandwidth. In this case, the two or more differentbroadcast transmission/reception systems refer to systems providingdifferent broadcast services. The different broadcast services may referto a terrestrial broadcast service, mobile broadcast service, etc.

The signaling generation block 1040 may create physical layer signalinginformation used for an operation of each functional block. Thissignaling information is also transmitted so that services of interestare properly recovered at a receiver side. Signaling informationaccording to an embodiment of the present invention may include PLSdata. PLS provides the receiver with a means to access physical layerDPs. The PLS data includes PLS1 data and PLS2 data.

The PLS1 data is a first set of PLS data carried in an FSS symbol in aframe having a fixed size, coding and modulation, which carries basicinformation about the system in addition to the parameters needed todecode the PLS2 data. The PLS1 data provides basic transmissionparameters including parameters required to enable reception anddecoding of the PLS2 data. In addition, the PLS1 data remains constantfor the duration of a frame group.

The PLS2 data is a second set of PLS data transmitted in an FSS symbol,which carries more detailed PLS data about the system and the DPs. ThePLS2 contains parameters that provide sufficient information for thereceiver to decode a desired DP. The PLS2 signaling further includes twotypes of parameters, PLS2 static data (PLS2-STAT data) and PLS2 dynamicdata (PLS2-DYN data). The PLS2 static data is PLS2 data that remainsstatic for the duration of a frame group and the PLS2 dynamic data isPLS2 data that dynamically changes frame by frame. Details of the PLSdata will be described later.

The above-described blocks may be omitted or replaced by blocks havingsimilar or identical functions.

FIG. 19 illustrates a BICM block according to an embodiment of thepresent invention.

The BICM block illustrated in FIG. 22 corresponds to an embodiment ofthe BICM block 1010 described with reference to FIG. 18.

As described above, the broadcast signal transmission apparatus forfuture broadcast services according to the embodiment of the presentinvention may provide a terrestrial broadcast service, mobile broadcastservice, UHDTV service, etc.

Since QoS depends on characteristics of a service provided by thebroadcast signal transmission apparatus for future broadcast servicesaccording to the embodiment of the present invention, data correspondingto respective services needs to be processed using different schemes.Accordingly, the BICM block according to the embodiment of the presentinvention may independently process respective DPs by independentlyapplying SISO, MISO and MIMO schemes to data pipes respectivelycorresponding to data paths. Consequently, the broadcast signaltransmission apparatus for future broadcast services according to theembodiment of the present invention may control QoS for each service orservice component transmitted through each DP.

(a) shows a BICM block applied to a profile (or system) to which MIMO isnot applied, and (b) shows a BICM block of a profile (or system) towhich MIMO is applied.

The BICM block to which MIMO is not applied and the BICM block to whichMIMO is applied may include a plurality of processing blocks forprocessing each DP.

Description will be given of each processing block of the BICM block towhich MIMO is not applied and the BICM block to which MIMO is applied.

A processing block 5000 of the BICM block to which MIMO is not appliedmay include a data FEC encoder 5010, a bit interleaver 5020, aconstellation mapper 5030, a signal space diversity (SSD) encoding block5040 and a time interleaver 5050.

The data FEC encoder 5010 performs FEC encoding on an input BBF togenerate FECBLOCK procedure using outer coding (BCH) and inner coding(LDPC). The outer coding (BCH) is optional coding method. A detailedoperation of the data FEC encoder 5010 will be described later.

The bit interleaver 5020 may interleave outputs of the data FEC encoder5010 to achieve optimized performance with a combination of LDPC codesand a modulation scheme while providing an efficiently implementablestructure. A detailed operation of the bit interleaver 5020 will bedescribed later.

The constellation mapper 5030 may modulate each cell word from the bitinterleaver 5020 in the base and the handheld profiles, or each cellword from the cell-word demultiplexer 5010-1 in the advanced profileusing either QPSK, QAM-16, non-uniform QAM (NUQ-64, NUQ-256, orNUQ-1024) or non-uniform constellation (NUC-16, NUC-64, NUC-256, orNUC-1024) mapping to give a power-normalized constellation point, e₁.This constellation mapping is applied only for DPs. It is observed thatQAM-16 and NUQs are square shaped, while NUCs have arbitrary shapes.When each constellation is rotated by any multiple of 90 degrees, therotated constellation exactly overlaps with its original one. This“rotation-sense” symmetric property makes the capacities and the averagepowers of the real and imaginary components equal to each other. BothNUQs and NUCs are defined specifically for each code rate and theparticular one used is signaled by the parameter DP_MOD filed in thePLS2 data.

The time interleaver 5050 may operates at a DP level. Parameters of timeinterleaving (TI) may be set differently for each DP. A detailedoperation of the time interleaver 5050 will be described later.

A processing block 5000-1 of the BICM block to which MIMO is applied mayinclude the data FEC encoder, the bit interleaver, the constellationmapper, and the time interleaver.

However, the processing block 5000-1 is distinguished from theprocessing block 5000 of the BICM block to which MIMO is not applied inthat the processing block 5000-1 further includes a cell-worddemultiplexer 5010-1 and a MIMO encoding block 5020-1.

In addition, operations of the data FEC encoder, the bit interleaver,the constellation mapper, and the time interleaver in the processingblock 5000-1 correspond to those of the data FEC encoder 5010, the bitinterleaver 5020, the constellation mapper 5030, and the timeinterleaver 5050 described above, and thus description thereof isomitted.

The cell-word demultiplexer 5010-1 is used for a DP of the advancedprofile to divide a single cell-word stream into dual cell-word streamsfor MIMO processing.

The MIMO encoding block 5020-1 may process an output of the cell-worddemultiplexer 5010-1 using a MIMO encoding scheme. The MIMO encodingscheme is optimized for broadcast signal transmission. MIMO technologyis a promising way to obtain a capacity increase but depends on channelcharacteristics. Especially for broadcasting, a strong LOS component ofa channel or a difference in received signal power between two antennascaused by different signal propagation characteristics makes itdifficult to obtain capacity gain from MIMO. The proposed MIMO encodingscheme overcomes this problem using rotation-based precoding and phaserandomization of one of MIMO output signals.

MIMO encoding is intended for a 2×2 MIMO system requiring at least twoantennas at both the transmitter and the receiver. A MIMO encoding modeof the present invention may be defined as full-rate spatialmultiplexing (FR-SM). FR-SM encoding may provide capacity increase withrelatively small complexity increase at the receiver side. In addition,the MIMO encoding scheme of the present invention has no restriction onan antenna polarity configuration.

MIMO processing is applied at the DP level. NUQ (e_(1,i) and e_(2,i))corresponding to a pair of constellation mapper outputs is fed to aninput of a MIMO encoder. Paired MIMO encoder output (g1,i and g2,i) istransmitted by the same carrier k and OFDM symbol l of respective TXantennas thereof.

The above-described blocks may be omitted or replaced by blocks havingsimilar or identical functions.

FIG. 20 illustrates a BICM block according to another embodiment of thepresent invention.

The BICM block illustrated in FIG. 20 corresponds to another embodimentof the BICM block 1010 described with reference to FIG. 18.

FIG. 20 illustrates a BICM block for protection of physical layersignaling (PLS), an emergency alert channel (EAC) and a fast informationchannel (FIC). The EAC is a part of a frame that carries EAS informationdata, and the FIC is a logical channel in a frame that carries mappinginformation between a service and a corresponding base DP. Details ofthe EAC and FIC will be described later.

Referring to FIG. 20, the BICM block for protection of the PLS, the EACand the FIC may include a PLS FEC encoder 6000, a bit interleaver 6010and a constellation mapper 6020.

In addition, the PLS FEC encoder 6000 may include a scrambler, a BCHencoding/zero insertion block, an LDPC encoding block and an LDPC paritypunturing block. Description will be given of each block of the BICMblock.

The PLS FEC encoder 6000 may encode scrambled PLS 1/2 data, EAC and FICsections.

The scrambler may scramble PLS1 data and PLS2 data before BCH encodingand shortened and punctured LDPC encoding.

The BCH encoding/zero insertion block may perform outer encoding on thescrambled PLS 1/2 data using a shortened BCH code for PLS protection,and insert zero bits after BCH encoding. For PLS1 data only, output bitsof zero insertion may be permutted before LDPC encoding.

The LDPC encoding block may encode an output of the BCH encoding/zeroinsertion block using an LDPC code. To generate a complete coded block,C_(ldpc) and parity bits P_(ldpc) are encoded systematically from eachzero-inserted PLS information block I_(ldpc) and appended thereto.C _(ldpc) =[I _(ldpc) P _(ldpc) ]=[i ₀ ,i ₁ , . . . ,i _(K) _(ldpc) ⁻¹,p ₀ ,p ₁ , . . . ,p _(N) _(ldpc) _(−K) _(ldpc) ⁻¹]  [Equation 1]

The LDPC parity punturing block may perform puncturing on the PLS1 dataand the PLS2 data.

When shortening is applied to PLS1 data protection, some LDPC paritybits are punctured after LDPC encoding. In addition, for PLS2 dataprotection, LDPC parity bits of PLS2 are punctured after LDPC encoding.These punctured bits are not transmitted.

The bit interleaver 6010 may interleave each of shortened and puncturedPLS1 data and PLS2 data.

The constellation mapper 6020 may map the bit-interleaved PLS1 data andPLS2 data to constellations.

The above-described blocks may be omitted or replaced by blocks havingsimilar or identical functions.

FIG. 21 illustrates a bit interleaving process of PLS according to anembodiment of the present invention.

Each shortened and punctured PLS1 and PLS2 coded block is interleavedbit-by-bit as described in FIG. 22. Each block of additional parity bitsis interleaved with the same block interleaving structure butseparately.

In the case of BPSK, there are two branches for bit interleaving toduplicate FEC coded bits in the real and imaginary parts. Each codedblock is written to the upper branch first. The bits are mapped to thelower branch by applying modulo N_(FEC) addition with cyclic shiftingvalue floor(N_(FEC)/2), where N_(FEC) is the length of each LDPC codedblock after shortening and puncturing.

In other modulation cases, such as QSPK, QAM-16 and NUQ-64, FEC codedbits are written serially into the interleaver column-wise, where thenumber of columns is the same as the modulation order.

In the read operation, the bits for one constellation symbol are readout sequentially row-wise and fed into the bit demultiplexer block.These operations are continued until the end of the column.

Each bit interleaved group is demultiplexed bit-by-bit in a group beforeconstellation mapping. Depending on modulation order, there are twomapping rules. In the case of BPSK and QPSK, the reliability of bits ina symbol is equal. Therefore, the bit group read out from the bitinterleaving block is mapped to a QAM symbol without any operation.

In the cases of QAM-16 and NUQ-64 mapped to a QAM symbol, the rule ofoperation is described in FIG. 23(a). As shown in FIG. 23(a), i is bitgroup index corresponding to column index in bit interleaving.

FIG. 21 shows the bit demultiplexing rule for QAM-16. This operationcontinues until all bit groups are read from the bit interleaving block.

FIG. 22 illustrates a configuration of a broadcast signal receptionapparatus for future broadcast services according to an embodiment ofthe present invention.

The broadcast signal reception apparatus for future broadcast servicesaccording to the embodiment of the present invention may correspond tothe broadcast signal transmission apparatus for future broadcastservices described with reference to FIG. 18.

The broadcast signal reception apparatus for future broadcast servicesaccording to the embodiment of the present invention may include asynchronization & demodulation module 9000, a frame parsing module 9010,a demapping & decoding module 9020, an output processor 9030 and asignaling decoding module 9040. A description will be given of operationof each module of the broadcast signal reception apparatus.

The synchronization & demodulation module 9000 may receive input signalsthrough m Rx antennas, perform signal detection and synchronization withrespect to a system corresponding to the broadcast signal receptionapparatus, and carry out demodulation corresponding to a reverseprocedure of a procedure performed by the broadcast signal transmissionapparatus.

The frame parsing module 9010 may parse input signal frames and extractdata through which a service selected by a user is transmitted. If thebroadcast signal transmission apparatus performs interleaving, the frameparsing module 9010 may carry out deinterleaving corresponding to areverse procedure of interleaving. In this case, positions of a signaland data that need to be extracted may be obtained by decoding dataoutput from the signaling decoding module 9040 to restore schedulinginformation generated by the broadcast signal transmission apparatus.

The demapping & decoding module 9020 may convert input signals into bitdomain data and then deinterleave the same as necessary. The demapping &decoding module 9020 may perform demapping of mapping applied fortransmission efficiency and correct an error generated on a transmissionchannel through decoding. In this case, the demapping & decoding module9020 may obtain transmission parameters necessary for demapping anddecoding by decoding data output from the signaling decoding module9040.

The output processor 9030 may perform reverse procedures of variouscompression/signal processing procedures which are applied by thebroadcast signal transmission apparatus to improve transmissionefficiency. In this case, the output processor 9030 may acquirenecessary control information from data output from the signalingdecoding module 9040. An output of the output processor 9030 correspondsto a signal input to the broadcast signal transmission apparatus and maybe MPEG-TSs, IP streams (v4 or v6) and generic streams.

The signaling decoding module 9040 may obtain PLS information from asignal demodulated by the synchronization & demodulation module 9000. Asdescribed above, the frame parsing module 9010, the demapping & decodingmodule 9020 and the output processor 9030 may execute functions thereofusing data output from the signaling decoding module 9040.

A frame according to an embodiment of the present invention is furtherdivided into a number of OFDM symbols and a preamble. As shown in (d),the frame includes a preamble, one or more frame signaling symbols(FSSs), normal data symbols and a frame edge symbol (FES).

The preamble is a special symbol that enables fast futurecast UTB systemsignal detection and provides a set of basic transmission parameters forefficient transmission and reception of a signal. Details of thepreamble will be described later.

A main purpose of the FSS is to carry PLS data. For fast synchronizationand channel estimation, and hence fast decoding of PLS data, the FSS hasa dense pilot pattern than a normal data symbol. The FES has exactly thesame pilots as the FSS, which enables frequency-only interpolationwithin the FES and temporal interpolation, without extrapolation, forsymbols immediately preceding the FES.

FIG. 23 illustrates a signaling hierarchy structure of a frame accordingto an embodiment of the present invention.

FIG. 23 illustrates the signaling hierarchy structure, which is splitinto three main parts corresponding to preamble signaling data 11000,PLS1 data 11010 and PLS2 data 11020. A purpose of a preamble, which iscarried by a preamble symbol in every frame, is to indicate atransmission type and basic transmission parameters of the frame. PLS1enables the receiver to access and decode the PLS2 data, which containsthe parameters to access a DP of interest. PLS2 is carried in everyframe and split into two main parts corresponding to PLS2-STAT data andPLS2-DYN data. Static and dynamic portions of PLS2 data are followed bypadding, if necessary.

Preamble signaling data according to an embodiment of the presentinvention carries 21 bits of information that are needed to enable thereceiver to access PLS data and trace DPs within the frame structure.Details of the preamble signaling data are as follows.

FFT_SIZE: This 2-bit field indicates an FFT size of a current framewithin a frame group as described in the following Table 1.

TABLE 1 Value FFT size 00  8K FFT 01 16K FFT 10 32K FFT 11 Reserved

GI_FRACTION: This 3-bit field indicates a guard interval fraction valuein a current superframe as described in the following Table 2.

TABLE 2 Value GI_FRACTION 000 ⅕ 001 1/10 010 1/20 011 1/40 100 1/80 1011/160 110 to 111 Reserved

EAC_FLAG: This 1-bit field indicates whether the EAC is provided in acurrent frame. If this field is set to ‘1’, an emergency alert service(EAS) is provided in the current frame. If this field set to ‘0’, theEAS is not carried in the current frame. This field may be switcheddynamically within a superframe.

PILOT_MODE: This 1-bit field indicates whether a pilot mode is a mobilemode or a fixed mode for a current frame in a current frame group. Ifthis field is set to ‘0’, the mobile pilot mode is used. If the field isset to ‘1’, the fixed pilot mode is used.

PAPR_FLAG: This 1-bit field indicates whether PAPR reduction is used fora current frame in a current frame group. If this field is set to avalue of ‘1’, tone reservation is used for PAPR reduction. If this fieldis set to a value of 0′, PAPR reduction is not used.

RESERVED: This 7-bit field is reserved for future use.

FIG. 24 illustrates PLS1 data according to an embodiment of the presentinvention.

PLS1 data provides basic transmission parameters including parametersrequired to enable reception and decoding of PLS2. As mentioned above,the PLS1 data remain unchanged for the entire duration of one framegroup. A detailed definition of the signaling fields of the PLS1 data isas follows.

PREAMBLE_DATA: This 20-bit field is a copy of preamble signaling dataexcluding EAC_FLAG

NUM_FRAME_FRU: This 2-bit field indicates the number of the frames perFRU.

PAYLOAD_TYPE: This 3-bit field indicates a format of payload datacarried in a frame group. PAYLOAD_TYPE is signaled as shown in Table 3.

TABLE 3 Value Payload type 1XX TS is transmitted. X1X IP stream istransmitted. XX1 GS is transmitted.

NUM_FSS: This 2-bit field indicates the number of FSSs in a currentframe.

SYSTEM_VERSION: This 8-bit field indicates a version of a transmittedsignal format. SYSTEM_VERSION is divided into two 4-bit fields: a majorversion and a minor version.

Major version: The MSB corresponding to four bits of the SYSTEM_VERSIONfield indicate major version information. A change in the major versionfield indicates a non-backward-compatible change. A default value is‘0000’. For a version described in this standard, a value is set to‘0000’.

Minor version: The LSB corresponding to four bits of SYSTEM_VERSIONfield indicate minor version information. A change in the minor versionfield is backwards compatible.

CELL_ID: This is a 16-bit field which uniquely identifies a geographiccell in an ATSC network. An ATSC cell coverage area may include one ormore frequencies depending on the number of frequencies used perfuturecast UTB system. If a value of CELL_ID is not known orunspecified, this field is set to ‘0’.

NETWORK_ID: This is a 16-bit field which uniquely identifies a currentATSC network.

SYSTEM_ID: This 16-bit field uniquely identifies the futurecast UTBsystem within the ATSC network. The futurecast UTB system is aterrestrial broadcast system whose input is one or more input streams(TS, IP, GS) and whose output is an RF signal. The futurecast UTB systemcarries one or more PHY profiles and FEF, if any. The same futurecastUTB system may carry different input streams and use different RFs indifferent geographical areas, allowing local service insertion. Theframe structure and scheduling are controlled in one place and areidentical for all transmissions within the futurecast UTB system. One ormore futurecast UTB systems may have the same SYSTEM_ID meaning thatthey all have the same physical layer structure and configuration.

The following loop includes FRU_PHY_PROFILE, FRU_FRAME_LENGTH,FRU_GI_FRACTION, and RESERVED which are used to indicate an FRUconfiguration and a length of each frame type. A loop size is fixed sothat four PHY profiles (including an FEF) are signaled within the FRU.If NUM_FRAME_FRU is less than 4, unused fields are filled with zeros.

FRU_PHY_PROFILE: This 3-bit field indicates a PHY profile type of an(i+1)^(th) (i is a loop index) frame of an associated FRU. This fielduses the same signaling format as shown in Table 8.

FRU_FRAME_LENGTH: This 2-bit field indicates a length of an (i+1)^(th)frame of an associated FRU. Using FRU_FRAME_LENGTH together withFRU_GI_FRACTION, an exact value of a frame duration may be obtained.

FRU_GI_FRACTION: This 3-bit field indicates a guard interval fractionvalue of an (i+1)^(th) frame of an associated FRU. FRU_GI_FRACTION issignaled according to Table 7.

RESERVED: This 4-bit field is reserved for future use.

The following fields provide parameters for decoding the PLS2 data.

PLS2_FEC_TYPE: This 2-bit field indicates an FEC type used by PLS2protection. The FEC type is signaled according to Table 4. Details ofLDPC codes will be described later.

TABLE 4 Content PLS2 FEC type 00 4K-1/4 and 7K-3/10 LDPC codes 01 to 11Reserved

PLS2_MOD: This 3-bit field indicates a modulation type used by PLS2. Themodulation type is signaled according to Table 5.

TABLE 5 Value PLS2_MODE 000 BPSK 001 QPSK 010 QAM-16 011 NUQ-64 100 to111 Reserved

PLS2_SIZE_CELL: This 15-bit field indicates C_(total) _(_) _(partial)_(_) _(block), a size (specified as the number of QAM cells) of thecollection of full coded blocks for PLS2 that is carried in a currentframe group. This value is constant during the entire duration of thecurrent frame group.

PLS2_STAT_SIZE_BIT: This 14-bit field indicates a size, in bits, ofPLS2-STAT for a current frame group. This value is constant during theentire duration of the current frame group.

PLS2_DYN_SIZE_BIT: This 14-bit field indicates a size, in bits, ofPLS2-DYN for a current frame group. This value is constant during theentire duration of the current frame group.

PLS2_REP_FLAG: This 1-bit flag indicates whether a PLS2 repetition modeis used in a current frame group. When this field is set to a value of‘1’, the PLS2 repetition mode is activated. When this field is set to avalue of ‘0’, the PLS2 repetition mode is deactivated.

PLS2_REP_SIZE_CELL: This 15-bit field indicates C_(total) _(_)_(partial) _(_) _(block), a size (specified as the number of QAM cells)of the collection of partial coded blocks for PLS2 carried in everyframe of a current frame group, when PLS2 repetition is used. Ifrepetition is not used, a value of this field is equal to 0. This valueis constant during the entire duration of the current frame group.

PLS2_NEXT_FEC_TYPE: This 2-bit field indicates an FEC type used for PLS2that is carried in every frame of a next frame group. The FEC type issignaled according to Table 10.

PLS2_NEXT_MOD: This 3-bit field indicates a modulation type used forPLS2 that is carried in every frame of a next frame group. Themodulation type is signaled according to Table 11.

PLS2_NEXT_REP_FLAG: This 1-bit flag indicates whether the PLS2repetition mode is used in a next frame group. When this field is set toa value of ‘1’, the PLS2 repetition mode is activated. When this fieldis set to a value of ‘0’, the PLS2 repetition mode is deactivated.

PLS2_NEXT_REP_SIZE_CELL: This 15-bit field indicates C_(total) _(_)_(full) _(_) _(block), a size (specified as the number of QAM cells) ofthe collection of full coded blocks for PLS2 that is carried in everyframe of a next frame group, when PLS2 repetition is used. If repetitionis not used in the next frame group, a value of this field is equal to0. This value is constant during the entire duration of a current framegroup.

PLS2_NEXT_REP_STAT_SIZE_BIT: This 14-bit field indicates a size, inbits, of PLS2-STAT for a next frame group. This value is constant in acurrent frame group.

PLS2_NEXT_REP_DYN_SIZE_BIT: This 14-bit field indicates the size, inbits, of the PLS2-DYN for a next frame group. This value is constant ina current frame group.

PLS2_AP_MODE: This 2-bit field indicates whether additional parity isprovided for PLS2 in a current frame group. This value is constantduring the entire duration of the current frame group. Table 6 belowprovides values of this field. When this field is set to a value of‘00’, additional parity is not used for the PLS2 in the current framegroup.

TABLE 6 Value PLS2-AP mode 00 AP is not provided 01 AP1 mode 10 to 11Reserved

PLS2_AP_SIZE_CELL: This 15-bit field indicates a size (specified as thenumber of QAM cells) of additional parity bits of PLS2. This value isconstant during the entire duration of a current frame group.

PLS2_NEXT_AP_MODE: This 2-bit field indicates whether additional parityis provided for PLS2 signaling in every frame of a next frame group.This value is constant during the entire duration of a current framegroup. Table 12 defines values of this field.

PLS2_NEXT_AP_SIZE_CELL: This 15-bit field indicates a size (specified asthe number of QAM cells) of additional parity bits of PLS2 in everyframe of a next frame group. This value is constant during the entireduration of a current frame group.

RESERVED: This 32-bit field is reserved for future use.

CRC_32: A 32-bit error detection code, which is applied to all PLS1signaling.

FIG. 25 illustrates PLS2 data according to an embodiment of the presentinvention.

FIG. 25 illustrates PLS2-STAT data of the PLS2 data. The PLS2-STAT datais the same within a frame group, while PLS2-DYN data providesinformation that is specific for a current frame.

Details of fields of the PLS2-STAT data are described below.

FIC_FLAG: This 1-bit field indicates whether the FIC is used in acurrent frame group. If this field is set to ‘1’, the FIC is provided inthe current frame. If this field set to ‘0’, the FIC is not carried inthe current frame. This value is constant during the entire duration ofa current frame group.

AUX_FLAG: This 1-bit field indicates whether an auxiliary stream is usedin a current frame group. If this field is set to ‘1’, the auxiliarystream is provided in a current frame. If this field set to ‘0’, theauxiliary stream is not carried in the current frame. This value isconstant during the entire duration of current frame group.

NUM_DP: This 6-bit field indicates the number of DPs carried within acurrent frame. A value of this field ranges from 1 to 64, and the numberof DPs is NUM_DP+1.

DP_ID: This 6-bit field identifies uniquely a DP within a PHY profile.

DP_TYPE: This 3-bit field indicates a type of a DP. This is signaledaccording to the following Table 7.

TABLE 7 Value DP Type 000 DP Type 1 001 DP Type 2 010 to 111 Reserved

DP_GROUP_ID: This 8-bit field identifies a DP group with which a currentDP is associated. This may be used by the receiver to access DPs ofservice components associated with a particular service having the sameDP_GROUP_ID.

BASE_DP_ID: This 6-bit field indicates a DP carrying service signalingdata (such as PSI/SI) used in a management layer. The DP indicated byBASE_DP_ID may be either a normal DP carrying the service signaling dataalong with service data or a dedicated DP carrying only the servicesignaling data.

DP_FEC_TYPE: This 2-bit field indicates an FEC type used by anassociated DP. The FEC type is signaled according to the following Table8.

TABLE 8 Value FEC_TYPE 00 16K LDPC 01 64K LDPC 10 to 11 Reserved

DP_COD: This 4-bit field indicates a code rate used by an associated DP.The code rate is signaled according to the following Table 9.

TABLE 9 Value Code rate 0000 5/15 0001 6/15 0010 7/15 0011 8/15 01009/15 0101 10/15  0110 11/15  0111 12/15  1000 13/15  1001 to 1111Reserved

DP_MOD: This 4-bit field indicates modulation used by an associated DP.The modulation is signaled according to the following Table 10.

TABLE 10 Value Modulation 0000 QPSK 0001 QAM-16 0010 NUQ-64 0011 NUQ-2560100 NUQ-1024 0101 NUC-16 0110 NUC-64 0111 NUC-256 1000 NUC-1024 1001 to1111 Reserved

DP_SSD_FLAG: This 1-bit field indicates whether an SSD mode is used inan associated DP. If this field is set to a value of ‘1’, SSD is used.If this field is set to a value of ‘0’, SSD is not used.

The following field appears only if PHY_PROFILE is equal to ‘010’, whichindicates the advanced profile:

DP_MIMO: This 3-bit field indicates which type of MIMO encoding processis applied to an associated DP. A type of MIMO encoding process issignaled according to the following Table 11.

TABLE 11 Value MIMO encoding 000 FR-SM 001 FRFD-SM 010 to 111 Reserved

DP_TI_TYPE: This 1-bit field indicates a type of time interleaving. Avalue of ‘0’ indicates that one TI group corresponds to one frame andcontains one or more TI blocks. A value of ‘1’ indicates that one TIgroup is carried in more than one frame and contains only one TI block.

DP_TI_LENGTH: The use of this 2-bit field (allowed values are only 1, 2,4, and 8) is determined by values set within the DP_TI_TYPE field asfollows.

If DP_TI_TYPE is set to a value of ‘1’, this field indicates P_(I), thenumber of frames to which each TI group is mapped, and one TI block ispresent per TI group (N_(TI)=1). Allowed values of P_(I) with the 2-bitfield are defined in Table 12 below.

If DP_TI_TYPE is set to a value of ‘0’, this field indicates the numberof TI blocks N_(TI) per TI group, and one TI group is present per frame(P_(I)=1). Allowed values of P_(I) with the 2-bit field are defined inthe following Table 12.

TABLE 12 2-bit field P_(I) N_(TI) 00 1 1 01 2 2 10 4 3 11 8 4

DP_FRAME_INTERVAL: This 2-bit field indicates a frame interval(I_(JUMP)) within a frame group for an associated DP and allowed valuesare 1, 2, 4, and 8 (the corresponding 2-bit field is ‘00’, ‘01’, ‘10’,or ‘11’, respectively). For DPs that do not appear every frame of theframe group, a value of this field is equal to an interval betweensuccessive frames. For example, if a DP appears on frames 1, 5, 9, 13,etc., this field is set to a value of ‘4’. For DPs that appear in everyframe, this field is set to a value of ‘1’.

DP_TI_BYPASS: This 1-bit field determines availability of the timeinterleaver 5050. If time interleaving is not used for a DP, a value ofthis field is set to ‘1’. If time interleaving is used, the value is setto ‘0’.

DP_FIRST_FRAME_IDX: This 5-bit field indicates an index of a first frameof a superframe in which a current DP occurs. A value ofDP_FIRST_FRAME_IDX ranges from 0 to 31.

DP_NUM_BLOCK_MAX: This 10-bit field indicates a maximum value ofDP_NUM_BLOCKS for this DP. A value of this field has the same range asDP_NUM_BLOCKS.

DP_PAYLOAD_TYPE: This 2-bit field indicates a type of payload datacarried by a given DP. DP_PAYLOAD_TYPE is signaled according to thefollowing Table 13.

TABLE 13 Value Payload type 00 TS 01 IP 10 GS 11 Reserved

DP_INBAND_MODE: This 2-bit field indicates whether a current DP carriesin-band signaling information. An in-band signaling type is signaledaccording to the following Table 14.

TABLE 14 Value In-band mode 00 In-band signaling is not carried. 01INBAND-PLS is carried 10 INBAND-ISSY is carried 11 INBAND-PLS andINBAND-ISSY are carried

DP_PROTOCOL_TYPE: This 2-bit field indicates a protocol type of apayload carried by a given DP. The protocol type is signaled accordingto Table 15 below when input payload types are selected.

TABLE 15 If DP_PAY- If DP_PAY- If DP_PAY- LOAD_TYPE LOAD_TYPE LOAD_TYPEValue is TS is IP is GS 00 MPEG2-TS IPv4 (Note) 01 Reserved IPv6Reserved 10 Reserved Reserved Reserved 11 Reserved Reserved Reserved

DP_CRC_MODE: This 2-bit field indicates whether CRC encoding is used inan input formatting block. A CRC mode is signaled according to thefollowing Table 16.

TABLE 16 Value CRC mode 00 Not used 01 CRC-8 10 CRC-16 11 CRC-32

DNP_MODE: This 2-bit field indicates a null-packet deletion mode used byan associated DP when DP_PAYLOAD_TYPE is set to TS (‘00’). DNP_MODE issignaled according to Table 17 below. If DP_PAYLOAD_TYPE is not TS(‘00’), DNP_MODE is set to a value of ‘00’.

TABLE 17 Value Null-packet deletion mode 00 Not used 01 DNP-NORMAL 10DNP-OFFSET 11 Reserved

ISSY_MODE: This 2-bit field indicates an ISSY mode used by an associatedDP when DP_PAYLOAD_TYPE is set to TS (‘00’). ISSY_MODE is signaledaccording to Table 18 below. If DP_PAYLOAD_TYPE is not TS (‘00’),ISSY_MODE is set to the value of ‘00’.

TABLE 18 Value ISSY mode 00 Not used 01 ISSY-UP 10 ISSY-BBF 11 Reserved

HC_MODE_TS: This 2-bit field indicates a TS header compression mode usedby an associated DP when DP_PAYLOAD_TYPE is set to TS (‘00’). HC_MODE_TSis signaled according to the following Table 19.

TABLE 19 Value Header compression mode 00 HC_MODE_TS 1 01 HC_MODE_TS 210 HC_MODE_TS 3 11 HC_MODE_TS 4

HC_MODE_IP: This 2-bit field indicates an IP header compression modewhen DP_PAYLOAD_TYPE is set to IP (‘01’). HC_MODE_IP is signaledaccording to the following Table 20.

TABLE 20 Value Header compression mode 00 No compression 01 HC_MODE_IP 110 to 11 Reserved

PID: This 13-bit field indicates the PID number for TS headercompression when DP_PAYLOAD_TYPE is set to TS (‘00’) and HC_MODE_TS isset to ‘01’ or ‘10’.

RESERVED: This 8-bit field is reserved for future use.

The following fields appear only if FIC_FLAG is equal to ‘1’.

FIC_VERSION: This 8-bit field indicates the version number of the FIC.

FIC_LENGTH_BYTE: This 13-bit field indicates the length, in bytes, ofthe FIC.

RESERVED: This 8-bit field is reserved for future use.

The following fields appear only if AUX_FLAG is equal to ‘1’.

NUM_AUX: This 4-bit field indicates the number of auxiliary streams.Zero means no auxiliary stream is used.

AUX_CONFIG_RFU: This 8-bit field is reserved for future use.

AUX_STREAM_TYPE: This 4-bit is reserved for future use for indicating atype of a current auxiliary stream.

AUX_PRIVATE_CONFIG: This 28-bit field is reserved for future use forsignaling auxiliary streams.

FIG. 26 illustrates PLS2 data according to another embodiment of thepresent invention.

FIG. 26 illustrates PLS2-DYN data of the PLS2 data. Values of thePLS2-DYN data may change during the duration of one frame group whilesizes of fields remain constant.

Details of fields of the PLS2-DYN data are as below.

FRAME_INDEX: This 5-bit field indicates a frame index of a current framewithin a superframe. An index of a first frame of the superframe is setto ‘0’.

PLS_CHANGE_COUNTER: This 4-bit field indicates the number of superframesbefore a configuration changes. A next superframe with changes in theconfiguration is indicated by a value signaled within this field. Ifthis field is set to a value of ‘0000’, it means that no scheduledchange is foreseen. For example, a value of ‘1’ indicates that there isa change in the next superframe.

FIC_CHANGE_COUNTER: This 4-bit field indicates the number of superframesbefore a configuration (i.e., content of the FIC) changes. A nextsuperframe with changes in the configuration is indicated by a valuesignaled within this field. If this field is set to a value of ‘0000’,it means that no scheduled change is foreseen. For example, a value of‘0001’ indicates that there is a change in the next superframe.

RESERVED: This 16-bit field is reserved for future use.

The following fields appear in a loop over NUM_DP, which describeparameters associated with a DP carried in a current frame.

DP_ID: This 6-bit field uniquely indicates a DP within a PHY profile.

DP_START: This 15-bit (or 13-bit) field indicates a start position ofthe first of the DPs using a DPU addressing scheme. The DP_START fieldhas differing length according to the PHY profile and FFT size as shownin the following Table 21.

TABLE 21 DP_START field size PHY profile 64K 16K Base 13 bits 15 bitsHandheld — 13 bits Advanced 13 bits 15 bits

DP_NUM_BLOCK: This 10-bit field indicates the number of FEC blocks in acurrent TI group for a current DP. A value of DP_NUM_BLOCK ranges from 0to 1023.

RESERVED: This 8-bit field is reserved for future use.

The following fields indicate FIC parameters associated with the EAC.

EAC_FLAG: This 1-bit field indicates the presence of the EAC in acurrent frame. This bit is the same value as EAC_FLAG in a preamble.

EAS_WAKE_UP_VERSION_NUM: This 8-bit field indicates a version number ofa wake-up indication.

If the EAC_FLAG field is equal to ‘1’, the following 12 bits areallocated to EAC_LENGTH_BYTE.

If the EAC_FLAG field is equal to ‘0’, the following 12 bits areallocated to EAC_COUNTER.

EAC_LENGTH_BYTE: This 12-bit field indicates a length, in bytes, of theEAC.

EAC_COUNTER: This 12-bit field indicates the number of frames before aframe where the EAC arrives.

The following fields appear only if the AUX_FLAG field is equal to ‘1’.

AUX_PRIVATE_DYN: This 48-bit field is reserved for future use forsignaling auxiliary streams. A meaning of this field depends on a valueof AUX_STREAM_TYPE in a configurable PLS2-STAT.

CRC_32: A 32-bit error detection code, which is applied to the entirePLS2.

FIG. 27 illustrates a logical structure of a frame according to anembodiment of the present invention.

As above mentioned, the PLS, EAC, FIC, DPs, auxiliary streams and dummycells are mapped to the active carriers of OFDM symbols in a frame. PLS1and PLS2 are first mapped to one or more FSSs. Thereafter, EAC cells, ifany, are mapped to an immediately following PLS field, followed next byFIC cells, if any. The DPs are mapped next after the PLS or after theEAC or the FIC, if any. Type 1 DPs are mapped first and Type 2 DPs aremapped next. Details of types of the DPs will be described later. Insome cases, DPs may carry some special data for EAS or service signalingdata. The auxiliary streams or streams, if any, follow the DPs, which inturn are followed by dummy cells. When the PLS, EAC, FIC, DPs, auxiliarystreams and dummy data cells are mapped all together in the abovementioned order, i.e. the PLS, EAC, FIC, DPs, auxiliary streams anddummy data cells, cell capacity in the frame is exactly filled.

FIG. 28 illustrates PLS mapping according to an embodiment of thepresent invention.

PLS cells are mapped to active carriers of FSS(s). Depending on thenumber of cells occupied by PLS, one or more symbols are designated asFSS(s), and the number of FSS(s) N_(FSS) is signaled by NUM_FSS in PLS1.The FSS is a special symbol for carrying PLS cells. Since robustness andlatency are critical issues in the PLS, the FSS(s) have higher pilotdensity, allowing fast synchronization and frequency-only interpolationwithin the FSS.

PLS cells are mapped to active carriers of the FSS(s) in a top-downmanner as shown in the figure. PLS1 cells are mapped first from a firstcell of a first FSS in increasing order of cell index. PLS2 cells followimmediately after a last cell of PLS1 and mapping continues downwarduntil a last cell index of the first FSS. If the total number ofrequired PLS cells exceeds the number of active carriers of one FSS,mapping proceeds to a next FSS and continues in exactly the same manneras the first FSS.

After PLS mapping is completed, DPs are carried next. If an EAC, an FICor both are present in a current frame, the EAC and the FIC are placedbetween the PLS and “normal” DPs.

Hereinafter, description will be given of encoding an FEC structureaccording to an embodiment of the present invention. As above mentioned,the data FEC encoder may perform FEC encoding on an input BBF togenerate an FECBLOCK procedure using outer coding (BCH), and innercoding (LDPC). The illustrated FEC structure corresponds to theFECBLOCK. In addition, the FECBLOCK and the FEC structure have samevalue corresponding to a length of an LDPC codeword.

As described above, BCH encoding is applied to each BBF (K_(bch) bits),and then LDPC encoding is applied to BCH-encoded BBF (K_(ldpc)bits=N_(bch) bits).

A value of N_(ldpc) is either 64,800 bits (long FECBLOCK) or 16,200 bits(short FECBLOCK).

Table 22 and Table 23 below show FEC encoding parameters for the longFECBLOCK and the short FECBLOCK, respectively.

TABLE 22 BCH error correction LDPC rate N_(ldpc) K_(ldpc) K_(bch)capability N_(bch) − K_(bch) 5/15 64800 21600 21408 12 192 6/15 2592025728 7/15 30240 30048 8/15 34560 34368 9/15 38880 38688 10/15  4320043008 11/15  47520 47328 12/15  51840 51648 13/15  56160 55968

TABLE 23 BCH error correction LDPC rate N_(ldpc) K_(ldpc) K_(bch)capability N_(bch) − K_(bch) 5/15 16200 5400 5232 12 168 6/15 6480 63127/15 7560 7392 8/15 8640 8472 9/15 9720 9552 10/15  10800 10632 11/15 11880 11712 12/15  12960 12792 13/15  14040 13872

Detailed operations of BCH encoding and LDPC encoding are as below.

A 12-error correcting BCH code is used for outer encoding of the BBF. ABCH generator polynomial for the short FECBLOCK and the long FECBLOCKare obtained by multiplying all polynomials together.

LDPC code is used to encode an output of outer BCH encoding. To generatea completed B_(ldpc) (FECBLOCK), P_(ldpc) (parity bits) is encodedsystematically from each I_(ldpc) (BCH—encoded BBF), and appended toI_(ldpc). The completed B_(ldpc) (FECBLOCK) is expressed by thefollowing Equation.B _(ldpc) =[I _(ldpc) P _(ldpc) ]=[i ₀ ,i ₁ , . . . ,i _(K) _(ldpc) ⁻¹,p ₀ ,p ₁ , . . . ,p _(N) _(ldpc) _(−K) _(ldpc) ⁻¹]  [Equation 2]

Parameters for the long FECBLOCK and the short FECBLOCK are given in theabove Tables 22 and 23, respectively.

A detailed procedure to calculate N_(ldpc)−K_(ldpc) parity bits for thelong FECBLOCK, is as follows.

1) Initialize the parity bits.p ₀ =p ₁ =p ₂ = . . . =p _(N) _(ldpc) _(−K) _(ldpc) ⁻¹=0  [Equation 3]

2) Accumulate a first information bit—i₀, at a parity bit addressspecified in a first row of addresses of a parity check matrix. Detailsof the addresses of the parity check matrix will be described later. Forexample, for the rate of 13/15,p ₉₈₃ =p ₉₈₃ ⊕i ₀ p ₂₈₁₅ =p ₂₈₁₅ ⊕i ₀p ₄₈₃₇ =p ₄₈₃₇ ⊕i ₀ p ₄₉₈₉ =p ₄₉₈₉ ⊕i ₀p ₆₁₃₈ =p ₆₁₃₈ ⊕i ₀ p ₆₄₅₈ =p ₆₄₅₈ ⊕i ₀p ₆₉₂₁ =p ₆₉₂₁ ⊕i ₀ p ₆₉₇₄ =p ₆₉₇₄ ⊕i ₀p ₇₅₇₂ =p ₇₅₇₂ ⊕i ₀ p ₈₂₆₀ =p ₈₂₆₀ ⊕i ₀p ₈₄₉₆ =p ₈₄₉₆ ⊕i ₀  [Equation 4]

3) For the next 359 information bits, i_(s), s=1, 2, . . . , 359,accumulate i_(s) at parity bit addresses using following Equation.{x+(s mod 360)×Q _(ldpc)} mod(N _(ldpc) −K _(ldpc))  [Equation 5]

Here, x denotes an address of a parity bit accumulator corresponding toa first bit i₀, and Q_(ldpc) is a code rate dependent constant specifiedin the addresses of the parity check matrix. Continuing with theQ_(ldpc) an example, =24 for the rate of 13/15, so for information biti₁, the following operations are performed.p ₁₀₀₇ =p ₁₀₀₇ ⊕i ₁ p ₂₈₃₉ =p ₂₈₃₉ ⊕i ₁p ₄₈₆₁ =p ₄₈₆₁ ⊕i ₁ p ₅₀₁₃ =p ₅₀₁₃ ⊕i ₁p ₆₁₆₂ =p ₆₁₆₂ ⊕i ₁ p ₆₄₈₂ =p ₆₄₈₂ ⊕i ₁p ₆₉₄₅ =p ₆₉₄₅ ⊕i ₁ p ₆₉₉₈ =p ₆₉₉₈ ⊕i ₁p ₇₅₉₆ =p ₇₅₉₆ ⊕i ₁ p ₈₂₈₄ =p ₈₂₈₄ ⊕i ₁p ₈₅₂₀ =p ₈₅₂₀ ⊕i ₁  [Equation 6]

4) For a 361th information bit i₃₆₀, an address of the parity bitaccumulator is given in a second row of the addresses of the paritycheck matrix. In a similar manner, addresses of the parity bitaccumulator for the following 359 information bits i_(s), s=361, 362, .. . , 719 are obtained using Equation 6, where x denotes an address ofthe parity bit accumulator corresponding to the information bit i₃₆₀,i.e., an entry in the second row of the addresses of the parity checkmatrix.

5) In a similar manner, for every group of 360 new information bits, anew row from the addresses of the parity check matrix is used to findthe address of the parity bit accumulator.

After all of the information bits are exhausted, a final parity bit isobtained as below.

6) Sequentially perform the following operations starting with i=1.p _(i) =p _(i) ⊕p _(i-1) ,i=1,2, . . . ,N _(ldpc) −K_(ldpc)−1  [Equation 7]

Here, final content of p_(i) (i=0, 1, . . . , N_(ldpc)−K_(ldpc)−1) isequal to a parity bit p_(i).

TABLE 24 Code rate Q_(ldpc) 5/15 120 6/15 108 7/15 96 8/15 84 9/15 7210/15  60 11/15  48 12/15  36 13/15  24

This LDPC encoding procedure for the short FECBLOCK is in accordancewith t LDPC encoding procedure for the long FECBLOCK, except that Table24 is replaced with Table 25, and the addresses of the parity checkmatrix for the long FECBLOCK are replaced with the addresses of theparity check matrix for the short FECBLOCK.

TABLE 25 Code rate Q_(ldpc) 5/15 30 6/15 27 7/15 24 8/15 21 9/15 1810/15  15 11/15  12 12/15  9 13/15  6

FIG. 29 illustrates time interleaving according to an embodiment of thepresent invention.

(a) to (c) show examples of a TI mode.

A time interleaver operates at the DP level. Parameters of timeinterleaving (TI) may be set differently for each DP.

The following parameters, which appear in part of the PLS2-STAT data,configure the TI.

DP_TI_TYPE (allowed values: 0 or 1): This parameter represents the TImode. The value of ‘0’ indicates a mode with multiple TI blocks (morethan one TI block) per TI group. In this case, one TI group is directlymapped to one frame (no inter-frame interleaving). The value of ‘1’indicates a mode with only one TI block per TI group. In this case, theTI block may be spread over more than one frame (inter-frameinterleaving).

DP_TI_LENGTH: If DP_TI_TYPE=‘0’, this parameter is the number of TIblocks N_(TI) per TI group. For DP_TI_TYPE=‘1’, this parameter is thenumber of frames P_(I) spread from one TI group.

DP_NUM_BLOCK_MAX (allowed values: 0 to 1023): This parameter representsthe maximum number of XFECBLOCKs per TI group.

DP_FRAME_INTERVAL (allowed values: 1, 2, 4, and 8): This parameterrepresents the number of the frames I_(JUMP) between two successiveframes carrying the same DP of a given PHY profile.

DP_TI_BYPASS (allowed values: 0 or 1): If time interleaving is not usedfor a DP, this parameter is set to ‘1’. This parameter is set to ‘0’ iftime interleaving is used.

Additionally, the parameter DP_NUM_BLOCK from the PLS2-DYN data is usedto represent the number of XFECBLOCKs carried by one TI group of the DP.

When time interleaving is not used for a DP, the following TI group,time interleaving operation, and TI mode are not considered. However,the delay compensation block for the dynamic configuration informationfrom the scheduler may still be required. In each DP, the XFECBLOCKsreceived from SSD/MIMO encoding are grouped into TI groups. That is,each TI group is a set of an integer number of XFECBLOCKs and contains adynamically variable number of XFECBLOCKs. The number of XFECBLOCKs inthe TI group of index n is denoted by N_(xBLOCK) _(_) _(Group)(n) and issignaled as DP_NUM_BLOCK in the PLS2-DYN data. Note that N_(xBLOCK) _(_)_(Group)(n) may vary from a minimum value of 0 to a maximum value ofN_(xBLOCK) _(_) _(Group) _(_) _(MAX) (corresponding toDP_NUM_BLOCK_MAX), the largest value of which is 1023.

Each TI group is either mapped directly to one frame or spread overP_(I) frames. Each TI group is also divided into more than one TI block(N_(TI)), where each TI block corresponds to one usage of a timeinterleaver memory. The TI blocks within the TI group may containslightly different numbers of XFECBLOCKs. If the TI group is dividedinto multiple TI blocks, the TI group is directly mapped to only oneframe. There are three options for time interleaving (except an extraoption of skipping time interleaving) as shown in the following Table26.

TABLE 26 Modes Descriptions Option 1 Each TI group contains one TI blockand is mapped directly to one frame as shown in (a). This option issignaled in PLS2- STAT by DP_TI_TYPE = ‘0’ and DP_TI_LENGTH = ‘1’(N_(TI) = 1). Option 2 Each TI group contains one TI block and is mappedto more than one frame. (b) shows an example, where one TI group ismapped to two frames, i.e., DP_TI_LENGTH = ‘2’ (P_(I) = 2) andDP_FRAME_INTERVAL (I_(JUMP) = 2). This provides greater time diversityfor low data-rate services. This option is signaled in PLS2-STAT byDP_TI_TYPE = ‘1’. Option 3 Each TI group is divided into multiple TIblocks and is mapped directly to one frame as shown in (c). Each TIblock may use a full TI memory so as to provide a maximum bit-rate for aDP. This option is signaled in PLS2-STAT by DP_TI_TYPE = ‘0’ andDP_TI_LENGTH = N_(TI), while P_(I) = 1.

Typically, the time interleaver may also function as a buffer for DPdata prior to a process of frame building. This is achieved by means oftwo memory banks for each DP. A first TI block is written to a firstbank. A second TI block is written to a second bank while the first bankis being read from and so on.

The TI is a twisted row-column block interleaver. For an s^(th) TI blockof an n^(th) TI group, the number of rows N_(r) of a TI memory is equalto the number of cells N_(cells), i.e., N_(r)=N_(cells) while the numberof columns N_(c) is equal to the number N_(xBLOCK) _(_) _(TI)(n,s).

FIG. 30 illustrates a basic operation of a twisted row-column blockinterleaver according to an embodiment of the present invention.

FIG. 30(a) shows a write operation in the time interleaver and FIG.30(b) shows a read operation in the time interleaver. A first XFECBLOCKis written column-wise into a first column of a TI memory, and a secondXFECBLOCK is written into a next column, and so on as shown in (a).Then, in an interleaving array, cells are read diagonal-wise. Duringdiagonal-wise reading from a first row (rightwards along a row beginningwith a left-most column) to a last row, N_(r) cells are read out asshown in (b). In detail, assuming z_(n,s,i) (i=0, . . . ,N_(r)N_(c)) asa TI memory cell position to be read sequentially, a reading process insuch an interleaving array is performed by calculating a row indexR_(n,s,i), a column index C_(n,s,i), and an associated twistingparameter T_(n,s,i) as in the following Equation.

$\begin{matrix}{{{GENERATE}\left( {R_{n,s,i},C_{n,s,i}} \right)} = \left\{ {{R_{n,s,i} = {{mod}\left( {i,N_{r}} \right)}},{T_{n,s,i} = {{mod}\left( {{S_{shift} \times R_{n,s,i}},N_{c}} \right)}},{C_{n,s,i} = {{mod}\left( {{T_{n,s,i} + \left\lfloor \frac{i}{N_{r}} \right\rfloor},N_{c}} \right)}}} \right\}} & \left\lbrack {{Equation}\mspace{14mu} 8} \right\rbrack\end{matrix}$

Here, S_(shift) is a common shift value for a diagonal-wise readingprocess regardless of N_(xBLOCK) _(_) _(TI)(n,s), and the shift value isdetermined by N_(xBLOCK) _(_) _(TI) _(_) _(MAX) given in PLS2-STAT as inthe following Equation.

          [Equation  9] ${for}\left\{ {\begin{matrix}{{N_{{{xBLOCK}\_{TI}}{\_{MAX}}}^{\prime} = {N_{{{xBLOCK}\_{TI}}{\_{MAX}}} + 1}},} & {{{if}\mspace{14mu} N_{{{xBLOCK}\_{TI}}{\_{MAX}}}{mod}\; 2} = 0} \\{{N_{{{xBLOCK}\_{TI}}{\_{MAX}}}^{\prime} = N_{{{xBLOCK}\_{TI}}{\_{MAX}}}},} & {{{if}\mspace{14mu} N_{{{xBLOCK}\_{TI}}{\_{MAX}}}{mod}\; 2} = 1}\end{matrix},\mspace{20mu}{S_{shift} = \frac{N_{{{xBLOCK}\_{TI}}{\_{MAX}}}^{\prime} - 1}{2}}} \right.$

As a result, cell positions to be read are calculated by coordinatesz _(n,s,i) =N _(r) C _(n,s,i) +R _(n,s,i).

FIG. 31 illustrates an operation of a twisted row-column blockinterleaver according to another embodiment of the present invention.

More specifically, FIG. 31 illustrates an interleaving array in a TImemory for each TI group, including virtual XFECBLOCKs when N_(xBLOCK)_(_) _(TI)(0,0)=3, N_(xBLOCK) _(_) _(TI)(1,0)=6, and N_(xBLOCK) _(_)_(TI)(2,0)=5.

A variable number N_(xBLOCK) _(_) _(TI)(n,s)=N_(r) may be less than orequal to N′_(xBLOCK) _(_) _(TI) _(_) _(MAX). Thus, in order to achievesingle-memory deinterleaving at a receiver side regardless of N_(xBLOCK)_(_) _(TI)(n,s), the interleaving array for use in the twistedrow-column block interleaver is set to a size ofN_(r)×N_(c)=N_(cells)×N′_(xBLOCK) _(_) _(TI) _(_) _(MAX) by insertingthe virtual XFECBLOCKs into the TI memory and a reading process isaccomplished as in the following Equation.

[Equation 10] p = 0; for i = 0; i < N_(cells)N_(xBLOCK) _(—) _(TI) _(—)_(MAX)′; i = i + 1 {GENERATE (R_(n,s,i), C_(n,s,i)); V_(i) =N_(r)C_(n,s,j) + R_(n,s,j)  if V_(i) < N_(cells)N_(xBLOCK) _(—)_(TI)(n,s)  {   Z_(n,s,p) = V_(i); p = p + 1;   } }

The number of TI groups is set to 3. An option of the time interleaveris signaled in the PLS2-STAT data by DP_TI_TYPE=‘0’,DP_FRAME_INTERVAL=‘1’, and DP_TI_LENGTH=‘1’, i.e., NTI=1, IJUMP=1, andPI=1. The number of XFECBLOCKs, each of which has Ncells=30 cells, perTI group is signaled in the PLS2-DYN data by NxBLOCK_TI(0,0)=3,NxBLOCK_TI(1,0)=6, and NxBLOCK_TI(2,0)=5, respectively. A maximum numberof XFECBLOCKs is signaled in the PLS2-STAT data by NxBLOCK_Group_MAX,which leads to └N_(xBLOCK) _(_) _(Group) _(_) _(MAX)/N_(TI)┘=N_(xBLOCK)_(_) _(TI) _(_) _(MAX)=6.

The purpose of the Frequency Interleaver, which operates on datacorresponding to a single OFDM symbol, is to provide frequency diversityby randomly interleaving data cells received from the frame builder. Inorder to get maximum interleaving gain in a single frame, a differentinterleaving-sequence is used for every OFDM symbol pair comprised oftwo sequential OFDM symbols.

Therefore, the frequency interleaver according to the present embodimentmay include an interleaving address generator for generating aninterleaving address for applying corresponding data to a symbol pair.

FIG. 32 illustrates an interlaving address generator including a mainpseudo-random binary sequence (PRBS) generator and a sub-PRBS generatoraccording to each FFT mode according to an embodiment of the presentinvention.

(a) shows the block diagrams of the interleaving-address generator for8K FFT mode, (b) shows the block diagrams of the interleaving-addressgenerator for 16K FFT mode and (c) shows the block diagrams of theinterleaving-address generator for 32K FFT mode.

The interleaving process for the OFDM symbol pair is described asfollows, exploiting a single interleaving-sequence. First, availabledata cells (the output cells from the Cell Mapper) to be interleaved inone OFDM symbol O_(m,l) is defined as O_(m,l)=[x_(m,l,0), . . . ,x_(m,l,p), . . . , x_(m,l,N) _(data) ⁻¹] for l=0, . . . ,N_(sym)−1,where x_(m,l,p) is the p^(th) cell of the l^(th) OFDM symbol in them^(th) frame and N_(data) is the number of data cells: N_(data)=C_(FSS)for the frame signaling symbol(s), N_(data)=C_(data) for the normaldata, and N_(data)=C_(FES) for the frame edge symbol. In addition, theinterleaved data cells are defined as P_(m,l)=[v_(m,l,0), . . . ,v_(m,l,N) _(data) ⁻¹] for l=0, . . . , N_(sym)−1.

For the OFDM symbol pair, the interleaved OFDM symbol pair is given by,

v_(m,l,H) _(l) _((p))=x_(m,l,p), p=0, . . . , N_(data)−1, for the firstOFDM symbol of each pair.

v_(m,l,p)=x_(m,l,H) _(l) _((p)), p=0, . . . , N_(data)−1, for the secondOFDM symbol of each pair,

where H_(l)(p) is the interleaving address generated by a PRBSgenerator.

FIG. 33 illustrates a main PRBS used for all FFT modes according to anembodiment of the present invention.

(a) illustrates the main PRBS, and (b) illustrates a parameter Nmax foreach FFT mode.

FIG. 34 illustrates a sub-PRBS used for FFT modes and an interleavingaddress for frequency interleaving according to an embodiment of thepresent invention.

(a) illustrates a sub-PRBS generator, and (b) illustrates aninterleaving address for frequency interleaving. A cyclic shift valueaccording to an embodiment of the present invention may be referred toas a symbol offset.

FIG. 35 illustrates a write operation of a time interleaver according toan embodiment of the present invention.

FIG. 35 illustrates a write operation for two TI groups.

A left block in the figure illustrates a TI memory address array, andright blocks in the figure illustrate a write operation when two virtualFEC blocks and one virtual FEC block are inserted into heads of twocontiguous TI groups, respectively.

Hereinafter, description will be given of a configuration of a timeinterleaver and a time interleaving method using both a convolutionalinterleaver (CI) and a block interleaver (BI) or selectively usingeither the CI or the BI according to a physical layer pipe (PLP) mode. APLP according to an embodiment of the present invention is a physicalpath corresponding to the same concept as that of the above-describedDP, and a name of the PLP may be changed by a designer.

A PLP mode according to an embodiment of the present invention mayinclude a single PLP mode or a multi-PLP mode according to the number ofPLPs processed by a broadcast signal transmitter or a broadcast signaltransmission apparatus. The single PLP mode corresponds to a case inwhich one PLP is processed by the broadcast signal transmissionapparatus. The single PLP mode may be referred to as a single PLP.

The multi-PLP mode corresponds to a case in which one or more PLPs areprocessed by the broadcast signal transmission apparatus. The multi-PLPmode may be referred to as multiple PLPs.

In the present invention, time interleaving in which different timeinterleaving schemes are applied according to PLP modes may be referredto as hybrid time interleaving. Hybrid time interleaving according to anembodiment of the present invention is applied for each PLP (or at eachPLP level) in the multi-PLP mode.

FIG. 36 illustrates an interleaving type applied according to the numberof PLPs in a table.

In a time interleaving according to an embodiment of the presentinvention, an interleaving type may be determined based on a value ofPLP_NUM. PLP_NUM is a signaling field indicating a PLP mode. WhenPLP_NUM has a value of 1, the PLP mode corresponds to a single PLP. Thesingle PLP according to the present embodiment may be applied only to aCI.

When PLP_NUM has a value greater than 1, the PLP mode corresponds tomultiple PLPs. The multiple PLPs according to the present embodiment maybe applied to the CI and a BI. In this case, the CI may performinter-frame interleaving, and the BI may perform intra-frameinterleaving.

FIG. 37 is a block diagram including a first example of a structure of ahybrid time interleaver described above.

The hybrid time interleaver according to the first example may include aBI and a CI. The time interleaver of the present invention may bepositioned between a BICM chain block and a frame builder.

The BICM chain block illustrated in FIGS. 37 and 38 may include theblocks in the processing block 5000 of the BICM block illustrated inFIG. 19 except for the time interleaver 5050. The frame builderillustrated in FIGS. 37 and 38 may perform the same function as that ofthe frame building block 1020 of FIG. 18.

As described in the foregoing, it is possible to determine whether toapply the BI according to the first example of the structure of thehybrid time interleaver depending on values of PLP_NUM. That is, whenPLP_NUM=1, the BI is not applied (BI is turned OFF) and only the CI isapplied. When PLP_NUM>1, both the BI and the CI may be applied (BI isturned ON). A structure and an operation of the CI applied whenPLP_NUM >1 may be the same as or similar to a structure and an operationof the CI applied when PLP_NUM=1.

FIG. 38 is a block diagram including a second example of the structureof the hybrid time interleaver described above.

An operation of each block included in the second example of thestructure of the hybrid time interleaver is the same as the abovedescription in FIG. 37. It is possible to determine whether to apply aBI according to the second example of the structure of the hybrid timeinterleaver depending on values of PLP_NUM. Each block of the hybridtime interleaver according to the second example may perform operationsaccording to embodiments of the present invention. In this instance, anapplied structure and operation of a CI may be different between a caseof PLP_NUM=1 and a case of PLP_NUM>1.

FIG. 39 is a block diagram including a first example of a structure of ahybrid time deinterleaver.

The hybrid time deinterleaver according to the first example may performan operation corresponding to a reverse operation of the hybrid timeinterleaver according to the first example described above. Therefore,the hybrid time deinterleaver according to the first example of FIG. 39may include a convolutional deinterleaver (CDI) and a blockdeinterleaver (BDI).

A structure and an operation of the CDI applied when PLP_NUM>1 may bethe same as or similar to a structure and an operation of the CDIapplied when PLP_NUM=1.

It is possible to determine whether to apply the BDI according to thefirst example of the structure of the hybrid time deinterleaverdepending on values of PLP_NUM. That is, when PLP_NUM=1, the BDI is notapplied (BDI is turned OFF) and only the CDI is applied.

The CDI of the hybrid time deinterleaver may perform inter-framedeinterleaving, and the BDEI may perform intra-frame deinterleaving.Details of inter-frame deinterleaving and intra-frame deinterleaving arethe same as the above description.

A BICM decoding block illustrated in FIGS. 39 and 40 may perform areverse operation of the BICM chain block of FIGS. 37 and 38.

FIG. 40 is a block diagram including a second example of the structureof the hybrid time deinterleaver.

The hybrid time deinterleaver according to the second example mayperform an operation corresponding to a reverse operation of the hybridtime interleaver according to the second example described above. Anoperation of each block included in the second example of the structureof the hybrid time deinterleaver may be the same as the abovedescription in FIG. 39.

It is possible to determine whether to apply a BDI according to thesecond example of the structure of the hybrid time deinterleaverdepending on values of PLP_NUM. Each block of the hybrid timedeinterleaver according to the second example may perform operationsaccording to embodiments of the present invention. In this instance, anapplied structure and operation of a CDI may be different between a caseof PLP_NUM=1 and a case of PLP_NUM>1.

FIG. 41 illustrates an application-related broadcast service accordingto an embodiment of the present invention.

The present invention proposes a signaling scheme and a synchronizationscheme in a broadcast service related to an application among theabove-described broadcast services. Here, the application-relatedbroadcast service may refer to a broadcast service corresponding to acase in which provision of a basic broadcast service is related to anapplication. Specifically, examples thereof may include a linear serviceincluding application-based enhancements and/or a standaloneapplication-based service. According to a given embodiment, thesignaling scheme of the present invention may be applied to another formof service which uses an application.

First, a description will be given of the linear service includingapplication-based enhancements. Here, the linear service may refer to ageneral broadcast service. An enhancement may refer to an enhancementservice or an interactive service which delivers additional informationfor a general broadcast service. In addition, application-basedenhancement may refer to a case in which the above-described additionalinformation is provided and/or controlled based on an application.

For example, a case, in which a player information application providesinformation about football players (application-based enhancement) whena football game (general broadcast service) is broadcast, may correspondto the linear service including application-based enhancements.

The standalone application-based service will be described. Thestandalone application-based service may refer to a broadcast serviceonly including an application-based enhancement. In other words, a casein which an application provides a service rather than theapplication-based enhancement provides additional information to thebasic broadcast service may correspond to the standaloneapplication-based service. A broadcast-independent application, etc. maybe an example of an application that provides the standaloneapplication-based service.

The application-based enhancement may include several components. Thecomponents of the application-based enhancement may include one or moreapplications, zero or more activation notifications, zero or moreadditional non-real-time (NRT) content items and/or zero or moreon-demand items.

Here, each application may correspond to an NRT content item which canbe executed in an application run time environment. Here, actions to beperformed by applications may be initiated by notifications deliveredthrough a broadcast network/broadband network, and these notificationsmay correspond to the above-described activation notifications. Thesenotifications may be referred to as “events”. Here, the additional NRTcontent items and/or the on-demand items may refer to data to be used byan application.

According to a given embodiment, one of applications included in theapplication-based enhancement may be set as a primary application. Whenthe primary application is present, the primary application may beexecuted upon selecting a broadcast service including theapplication-based enhancement. Applications other than the primaryapplication may be executed by signaling through the broadcastnetwork/broadband network. Alternatively, applications other than theprimary application may be executed by other applications which havebeen executed. In this case, the applications other than the primaryapplication may be executed by createApplication( ) of JavaScript.

As described in the foregoing, the present invention proposes asignaling scheme for various types of application-based enhancements. Inaddition, the present invention proposes a scheme of delivering anactivation notification in synchronization with a time base. Actions ofan application may be synchronized by the synchronized activationnotification.

Here, the application may refer to a set of documents (HTML, CSS,JavaScript, etc.) included in an enhancement/interactive service.

Here, a content item may refer to a set of one or more files intended tobe treated as one unit for presentation by a service provider.

Here, an event may refer to a timed notification that indicates anaction to be performed in a DASH client or application.

Here, an event stream may refer to a stream of the above-describedevents.

Here, the NRT content item may refer to a content item delivered aheadof time for another use in a future presentation or application.

Here, an on-demand content item may refer to a content item downloadedand presented at a point in time requested by a user.

FIG. 42 illustrates a part of an ApplicationList element according to anembodiment of the present invention.

FIG. 43 illustrates another part of the ApplicationList elementaccording to an embodiment of the present invention.

Even though the two figures originally corresponded to one figure, theone figure is divided into two figures due to space constraints.

As described in the foregoing, the broadcast service may include zero ormore application-based enhancements. For example, the linear service mayinclude an application-based enhancement having one application which isexecuted in the background to manage insertion of a targetedadvertisement. In addition, the linear service may further include anapplication-based enhancement having a set of applications which providean interactive viewing experience related to an audio/video program.

Here, each of the application-based enhancements may be separatelysignaled. Therefore, manufacturers who manufacture various applicationsmay not cooperate with each other in signaling thereof.

A set of applications included in one application-based enhancement maybe signaled by an application signaling table (AST). The AST is one ofXML documents, and may include the ApplicationList element as a rootelement. One AST may include signaling information of applicationsincluded in one application-based enhancement. According to a givenembodiment, one AST may be extended to signal a plurality ofapplication-based enhancements.

Service signaling information of one service may include an AST for eachapplication-based enhancement included in the service. In other words,when one service includes a plurality of application-based enhancements,service signaling information of the service may include a plurality ofASTs.

An example of the AST illustrated in the figure will be described.According to a given embodiment, each element/attribute of the AST maybe added/omitted/changed.

The AST may include the ApplicationList element as a root element. TheApplicationList element may include a list of Application elements. Thatis, the ApplicationList element may include at least one or moreApplication elements.

Each of the Application elements may include an appName element, anapplicationDescriptor element, an applicationSpecificDescriptor element,an applicationUsageDescriptor element, an applicationBoundary element,an applicationTransport element, an applicationLocation element, anatsc:Capabilities element, an atsc:liveEventSource element, anatsc:ContentItems element, an @applicationIdentifier attribute, an@atsc:serviceId attribute and/or an @atsc:protocolVersion attribute.

The appName element may indicate a name of an application which isindicated by the Application element. This element may be omitted. Theapplication name may be expressed in various languages. The appNameelement may further include an @lang attribute. The @lang attribute mayindicate a language of the application name.

The applicationDescriptor element may include information of thecorresponding application. The applicationDescriptor element may includeinformation which can be commonly included in all applications. TheapplicationDescriptor element may include an icon element, an @typeattribute, an @controlCode attribute, an @visibility attribute, an@serviceBound attribute, an @priority attribute, an @version attribute,an @mhpVersion attribute, an @storageCapabilities attribute and/or an@trickModeTolerance attribute.

The icon element may indicate an icon which can be used to represent thecorresponding application. This element may be omitted. The icon elementmay include an @mimeType attribute that indicates a MIME type of anapplication image (icon) and/or an @width/@height/@depth attribute thatindicates a width/height/depth of the application image using pixels.The icon element may further include an @url attribute having HTTP URLinformation for downloading the application image.

The @type attribute may indicate a type of the correspondingapplication. For example, this attribute may indicate that thecorresponding application is an application according to ATSC or DVB.

The @controlCode attribute may include information for controlling astate of the corresponding application. For example, this attribute mayhave information about autolaunch, kill, etc. The state of thecorresponding application may be controlled using the information.

The @visibility attribute may indicate whether the correspondingapplication is visible to a user and/or another application. Here, in abroad sense, whether the corresponding application is visible to theuser and/or the other application may indicate whether the correspondingapplication appears in a user interface. This attribute may indicatewhether the corresponding application is audible or sensible in additionto whether the corresponding application is visible. According to agiven embodiment, whether the corresponding application is audible tothe user, etc. through a speaker may be indicated by separately settingan @audibility attribute. This attribute may be omitted.

The @serviceBound attribute may indicate whether the correspondingapplication is service-bounded. The corresponding application may beservice-bounded when this attribute is set to true, and may not beservice-bounded when this attribute is set to false. This attribute mayhave the true value as a default value. This attribute may be omitted.When this attribute is omitted, it may mean that the correspondingapplication is service-bounded.

The @priority attribute may indicate a relative priority of thecorresponding application when compared to other applications. The@version attribute may indicate a version of the correspondingapplication. The @mhpVersion attribute may indicate a platform or aversion necessary for the corresponding application. This attribute maybe omitted.

The @storageCapabilities attribute may indicate the amount of storagenecessary to cache the corresponding application. This attribute may beomitted. According to a given embodiment, this attribute may be used toindicate whether the corresponding application can be cached.

The @trickModeTolerance attribute may indicate whether the correspondingapplication is compatible with a certain trick mode. Compatibility mayrefer to whether the corresponding application can tolerate the certaintrick mode when the certain trick mode is executed. Examples of thetrick mode may include pause, FF, slow mode, rewind, etc. This attributemay be omitted. In a broadcast service having an applicationenhancement, when the user performs a trick play for the broadcastservice, signaling may be performed such that a basic program subjectedto the trick play can be normally enhanced.

The applicationSpecificDescriptor element may have necessary informationonly for a certain type of application unlike the above-describedapplicationDescriptor element. That is, information of this element maybe subject to an application type. This element may be unnecessaryaccording to application type, and thus this element may be omitted.

The applicationUsageDescriptor element may indicate a function of thecorresponding application. For example, this element may indicate thatthe corresponding application can be used for teletext. This element maybe unnecessary according to application type. This element may beomitted.

The applicationBoundary element may indicate URL information thatdefines extension of an application boundary of the correspondingapplication. This element may be omitted.

The applicationTransport element may indicate a protocol used to deliverthe corresponding application. For example, this element may indicatethat the corresponding application is delivered through ROUTE, MMT orHTTP. According to a given embodiment, this element may indicate aprotocol used when the AST is delivered. According to theabove-described method of delivering service data of the presentinvention, permissible values of this element may correspond to ROUTE,MMT, HTTP, etc.

The applicationLocation element may indicate a URL that provides alocation at which the corresponding application can to be acquired.According to a given embodiment, this element may indicate a URL atwhich the corresponding application can to be acquired.

The atsc:Capabilities element may indicate capability information formeaningfully processing the corresponding application/application-basedenhancement. Here, capability for meaningful processing may refer tocapability of a receiving side capable of meaningfully performingrendering/decoding/reproduction, etc. According to a given embodiment,the capability information may be indicated by a preset capability code.

The atsc:liveEventSource element may provide information for receivingthe above-described event in a live situation. For example, in a livebroadcast program, an event needs to be changed in real time anddelivered in order to provide an enhancement according to content of thebroadcast program which changes in real time. Unlike pre-producedcontent, the above-described operation may be needed in the livesituation. This element may provide information such as a URL, etc. forreceiving the event in real time in this situation. This element mayinclude an @url attribute, an @shortPollingPeriod attribute and/or an@targetDevice attribute.

The @url attribute may indicate a URL for receiving the event in thelive situation. The @shortPollingPeriod attribute may indicate a pollingperiod when the event is acquired in short polling of a broadbandnetwork. The @targetDevice attribute may indicate a device targeted bythe live event. For example, a primary device (PD) or a companion device(CD) may correspond to the target device. The @shortPollingPeriodattribute and/or the @targetDevice attribute may be omitted.

The atsc:ContentItems element may include information about each contentitem to be used by the corresponding application. The number ofContentItems elements may correspond to the number of respective contentitems. The atsc:ContentItems element may further include a locationelement, an @ContentLinkage attribute, an @updatesAvailable attribute,an @TFAvailable attribute, an @contentSecurityCondition attribute, an@availableInBroadcast attribute, an @availableOnInet attribute, an@playbackLengthInSeconds attribute, an @playbackDelay attribute, an@expiration attribute, an @size attribute, an @name attribute and/or atimeSlotInfo element.

The location element may indicate information about a location at whichthe content item can be acquired. This information may have a form ofURL according to a given embodiment. The location element may beomitted, or a plurality of location elements may be present.

The @ContentLinkage attribute may indicate an application in which thecontent item is to be used. Signaling by a certain application may beperformed using a value of this attribute and information about eventsto be described below (EventStream element, emsg box, etc.). Forexample, this attribute may provide an application identifier for thecertain application or indicate a certain LCT session in whichapplication data thereof is delivered.

The @updatesAvailable attribute may indicate whether the content itemcan be updated. This attribute may have a value of true or false. The@TFAvailable attribute may indicate whether a text fragment is presenton a signaling channel for the content item.

The @contentSecurityCondition attribute may indicate a security state ofthe content item. The @availableInBroadcast attribute may indicatewhether the content item can be acquired through a broadcast network.The @availableOnInet attribute may indicate whether the content item canbe acquired through an Internet protocol network.

The @playbackLengthInSeconds attribute may indicate a length in secondsof the content item when the content item is reproduced. This attributemay be omitted. The @playbackDelay attribute may indicate a reproductiondelay of the content item. This attribute may be omitted. The@expiration attribute may indicate an expiration period of the contentitem. This attribute may be omitted. The @size attribute may indicate asize of the content item. This attribute may be omitted. The @nameattribute may indicate a name of the content item. This attribute may beomitted.

The timeSlotInfo element may include time slot-related information ofthe content item. The timeSlotInfo element may further include an@time_slot_start attribute, an @time_slot_length attribute, an@acquisition_time attribute, an @repeat_period attribute and/or an@slot_count attribute.

The @time_slot_start attribute may indicate a start time of a time slot.This time may be expressed in GPS seconds from 00:00:00 UTC of Jan. 6,1980. When this field has a value of 0, this field may indicate that thetime slot starts from an uncertain past.

The @time_slot_length attribute may indicate a length in minutes of thetime slot.

The @acquisition_time attribute may indicate a minimum time intervallength in which transmission of at least one content item is ensured.This time interval may be expressed in minutes. Here, this time intervalis presumed to start from an arbitrary time in the time slot and mayinclude an end of the time slot. When one large content item isrepeatedly transmitted during the time slot, this attribute maycorrespond to a time taken when one instance of the content item istransmitted. When a plurality of small content items is transmitted in acarousel, this attribute may correspond to a cycle time of the carousel.

The @repeat_period attribute may indicate a repetition interval inminutes of the time slot.

The @slot_count attribute may indicate the number of times at which thetime slot occurs. The number of times may be indicated from a time slotwhich starts from a time indicated by the @time_slot_start attribute.When this attribute has a value of 0, repetition may be presumed toindefinitely continue.

The Application element may directly include the @ContentLinkageattribute and/or the timeSlotInfo element. That is, the @ContentLinkageattribute and/or the timeSlotInfo element may be included in both theApplication element and the atsc:ContentItems element.

Among the attributes of the Application element, the@applicationIdentifier attribute may indicate an identifier of theapplication. This value may be a globally unique value.

The @atsc:serviced attribute may indicate a service identifier of aservice related to the corresponding application.

The @atsc:protocolVersion attribute may indicate a protocol version ofthe corresponding application. According to a given embodiment, thecorresponding field may be divided into two fields indicating a majorprotocol version and a minor protocol version. Alternatively, this fieldmay simultaneously provide the major/minor protocol versions.

The ApplicationList element may include an @ASTVersionNumber attribute,an @timeSpanStart attribute and/or an @timeSpanLength attribute inaddition to the plurality of Application elements.

The @ASTVersionNumber attribute may indicate a version number of thewhole corresponding AST. According to a given embodiment, thecorresponding field may be divided into two fields indicating a majorprotocol version and a minor protocol version. Alternatively, this fieldmay simultaneously provide the major/minor protocol versions.

The @timeSpanStart attribute may indicate a start of a time intervalcovered by a corresponding AST instance. The AST may be divided into aplurality of instances and transmitted. Each of the AST instances mayinclude signaling information for each time interval.

The @timeSpanLength attribute may indicate a length of a time intervalcovered by a corresponding AST instance. It is possible to calculate thetime interval covered by the corresponding AST instance together with avalue of the @timeSpanStart attribute.

The respective fields of the AST according to the above-describedembodiments may be omitted or changed. In addition, according to a givenembodiment, additional fields may be added to the AST. The respectivefields of the AST may be replaced by fields having the same/similarmeanings.

The above-described AST may be transmitted through a broadcast networkor a broadband network.

When the AST is transmitted through the broadcast network, an AST for anapplication enhancement may be delivered through a service signalingchannel of a broadcast service to which the application enhancement isrelated. Here, the service signaling channel of the service may refer toa path through which the above-described SLS is delivered. For example,in ROUTE, an LCT transmission session specified by tsi=0 may deliver theAST as a dedicated signaling channel. In MMT, an MMTP packet flowspecified by packet_id=00 may deliver the AST as a dedicated signalingchannel.

When the AST is delivered through the broadband network, the AST may beacquired through a query. This query may be generated using base URLinformation in the SLT described above. The base URL may correspond toURL information for acquiring the AST. Here, the SLT may correspond toan SLT including bootstrap information for a broadcast service relatedto the AST. In a scenario in which a watermark is used, the base URL maybe acquired through the watermark or through an auto content recognition(ACR) process using the watermark.

FIG. 44 illustrates an event message table (EMT) according to anembodiment of the present invention.

As described in the foregoing, actions to be performed by applicationsmay be initiated by notifications delivered through the broadcastnetwork/broadband network. These notifications may be referred to as“events”. According to context, operations, actions, or operated statesof the applications initiated by the notifications may be referred to as“events”. In addition, executable actions of the applications may bereferred to as “events”.

These events may be delivered through the broadcast network or thebroadband network. In this case, each event or an action performed bythe event may need to be synchronized with a basic broadcastservice/broadcast program. The present invention proposes a deliveryscheme and a synchronization scheme of the event.

A description will be given of a case in which the event is deliveredthrough the broadcast network.

When the event is delivered through the broadcast network, the event maybe delivered as a DASH event. In this instance, the event may bedelivered in the form of an EventStream element or an emsg box. A casein which the event is delivered through the EventStream element maycorrespond to a case in which the event is delivered as a form of anEventStream element which appears in a Period element of an MPD. A casein which the event is delivered in the form of the emsg box maycorrespond to a case in which the event is delivered through an emsg boxwhich appears in representation segments.

The two event delivery mechanisms may be interchangeable. For example,one event stream may include several events delivered through theEventStream element and/or other events delivered through the emsg box.

The events delivered through the EventStream element may correspond toevents to be delivered to the receiving side during a time intervalcorresponding to a certain period. In other words, the MPD may providesignaling information at time intervals of a service referred to as aperiod as service signaling information of a certain service. Thesignaling information for the period is included in an MPD Periodelement, and this Period element may include the EventStream element.The EventStream element may provide signaling (event) necessary foroperations of applications during the period of the service.

The EventStream element may correspond to a list of Event elements. EachEventStream element may have a schemeIdUri attribute and/or a valueattribute. These two attributes may indicate types of events in anEventStream. According to a given embodiment, these two attributes mayidentify events. Here, predefined values may be used as values of theschemeIdUri attribute and/or the value attribute. Alternatively, aservice provide may additionally define and use values of theschemeIdUri attribute and/or the value attribute. An “owner” of theschemeIdUri attribute needs to uniquely define the schemeIdUriattribute, and needs to define semantics of the event and the valueattribute. Value information may be subject to an application and usedto identify a certain event stream in one service.

The EventStream element may further include a timescale attribute. Thisattribute may indicate a reference time scale in duration and an eventpresentation time.

Each Event sub-element of the EventStream element may include apresentationTime attribute, a duration attribute, and/or an idattribute. The presentationTime attribute may indicate a start time ofeach event, the duration attribute may indicate a duration of eachevent, and the id attribute may indicate an identifier of each event. Inthis context, the event may refer to an action of an applicationinitiated by a notification or a phenomenon caused by the action (pop-upwindow, etc.).

The Event sub-element may not have data for the corresponding event.However, according to a given embodiment, an Event element may have anadditional data element or attribute. This data element/attribute mayprovide data necessary to execute an action initiated by the event.

According to a given embodiment, a plurality of EventStream elementshaving different types may be present in one period.

When the event is delivered in the form of the emsg box, the event maybe delivered through the emsg box which appears in the Representationsegments as described in the foregoing. In this instance, anInbandEventStream element of the Representation of the MPD may signalwhether an event is present in the emsg box in the segments.

An InbandEvent element may include schemeIdUri and/or value. These twofields may indicate a type of an event in the emsg box. According to agiven embodiment, these two fields may be used to identify the event.

The InbandEvent element may further include a timescale field. Thisfield may indicate a reference time scale related to an event.

In addition, the InbandEvent element may further includepresentation_time_delta information, event_duration information and/orid information. The presentation_time_delta information may indicate astart time of the corresponding event. Here, the start time may beexpressed by a relative value with respect to a start time of theRepresentation. The event_duration information may indicate a durationof the corresponding event. The id information may identify an instanceof the corresponding event.

The InbandEvent element may further optionally include message_datainformation. The message_data information may provide data necessary toexecute an action which is initiated by the corresponding event.

A description will be given of a case in which the event is deliveredthrough the broadband network.

Batch delivery using a batch through MPD and incremental delivery usingthe emsg box have been described with regard to delivery of the eventthrough the broadcast network. Similarly, batch delivery and incrementaldelivery may be proposed with regard to delivery of the event throughthe broadband network.

When the event is delivered using batch delivery through the broadbandnetwork, events may be delivered through an event stream table (EST).This EST may be referred to as an EMT according to a given embodiment.As an XML document, the EST may include an EventStreamTable element as aroot element.

The EventStreamTable element may correspond to a list of EventStreamelements. Each of the EventStream elements may be identical to theEventStream element in delivery of the event through the broadcastnetwork described above. The list of EventStream elements may includeall event streams for one service.

The illustrated EMT is an EMT (EST) according to another embodiment ofthe present invention. The EMT may include an @mpdId attribute, an@periodId attribute, and an EventStream element.

The @mpdId attribute may correspond to an identifier of an MPD relatedto events described by the EMT. The MPD may be used as a time referenceof the corresponding events.

The @periodId attribute may correspond to an identifier of a period ofthe MPD related to the events of the EMT. The period may be used as atime reference of the corresponding events.

Respective fields in the EventStream element are as described above.Here, each Event element may have a value suitable for a type thereofaccording to a value of @schemeIdURi and/or @value. An @presentationTimeattribute indicates a start time of an event as a relative value withrespect to a start time of a period, and this period may correspond to aperiod identified by the @mpdId and @periodId attributes.

The EST may be acquired through a query as described above. The querymay be generated by base URL information in the SLT. A descriptionthereof has been given above.

When events are delivered using incremental delivery through thebroadband network, the events may be separately delivered through a liveevent server. Polling may be periodically performed using the live eventserver. When an event to be transmitted in the corresponding period ispresent, the event server may deliver the event to a receiver.Information such as a URL, a polling period, etc. of the live eventserver may have been delivered to the receiver by the above describedAST or EST, or another signaling object.

The event delivered in this case may have the same format as a format ofthe emsg box in the above-described delivery of the event using the emsgbox. According to a given embodiment, signaling informationcorresponding to the above-described InbandEvent element may bedelivered together with the live event.

SchemeIdUri information and value information may correspond totargetURI and eventName arguments in an API for addition and deletion ofa stream event listener for an event stream. The events according to therespective embodiments described above may further include an optionaldata attribute. The data attribute may provide data used to execute anaction which is initiated by the corresponding event. The data attributemay correspond to a data attribute of a StreamEvent interface returnedto a registered listener when the event occurs.

In delivery of an NRT content item, an NRT delivery method of ATSC maybe used. However, in this case, an AST is used instead of an NRT-IT, anda content item to be delivered by the AST may be identified. Inaddition, an application may initiate broadband delivery of the NRTcontent item even when the NRT content item is not listed in the AST.

An on-demand content item may be delivered through the broadbandnetwork. Broadband delivery of the on-demand content item may beinitiated by an application.

Synchronization of an application will be described.

The application may need to be synchronized in several aspects. Forexample, actions of the application may need to be synchronized with ascheduled audio/video service. In addition, the application may need tobe initiated and suspended according to the scheduled audio/videoservice. The application and the actions of the application may need tobe synchronized with reproduction of recorded content, NRT content, etc.in addition to a basic broadcast service. In addition, the applicationmay need to be initiated or suspended according to recorded content, NRTcontent, etc. to effectively enhance user experience.

In addition, an application in a CD may need to be synchronized withaudio/video content reproduced in a PD such that an applicationenhancement provided by the CD can be effectively synchronized andprovided.

User experience will be described.

According to a given embodiment, the user may control operations of theapplication for an efficient application enhancement since theenhancement may hinder viewing when the operations cannot be controlled.As an embodiment, permission of the user may be used. The user maycollectively permit all services or some particular services.Alternatively, the user may permit applications of the respectiveservices or the services case by case.

When the user gives permission case by case, an application notificationmay need to be displayed first before the application is activated.Through this notification, the application may obtain to be activatedpermission from the user. The application may be in a blocked stateuntil obtaining permission.

A format and a location of the notification for this permission may bedetermined by a device manufacturer. An actual user interface forpermission may be determined by the device manufacturer. Referring tothese issues, a certain format, etc. may be proposed by a certain entityfrom an industrial viewpoint.

A notification for permission may time-out or be dismissed by the user.In this way, even when the user does not immediately determine whetherto permit activation of the application, the user may be prevented frombeing hindered from viewing continuously by this notification. Even whenthe notification is on a time-out or dismissed and thus is invisible,the user may activate or block the application through setting, etc. Theuser may terminate the activated application. In this case, even when asignal for activating the application is received, the application maybe continuously blocked.

A description will be given of synchronization of an action and anaction parameter.

Download of the application, activation of the application, terminationof the application, and/or a certain action of the application may needto be synchronized with a basic broadcast program, etc.

With regard to actions of the application, action parameters may beneeded to perform the actions. The actions may be performed usinginformation of the parameters. Examples of the action parameters mayinclude an application identifier parameter for identifying anapplication related to an action, a time parameter that indicates a timeat which an action is to be performed, and/or a synchronization levelparameter related to a synchronization level of an action. Here, thetime parameter may indicate a start time of an action as a relativevalue with respect to a time base or a media time line. Here, thesynchronization level parameter may indicate a synchronization levelsuch as program level sync, sync less than two seconds, lip sync, framesync, etc.

With regard to an action related to download of the application, thisaction may include an action parameter related to a target device and/oran action parameter related to a jitter interval. The action parameterrelated to the target device may include information as to whether thedownloaded application is for a PC or a CD. The action parameter relatedto the jitter interval may include information related to the jitterinterval for fetching of the application.

With regard to an action related to start of the application, thisaction may include an action parameter related to a target device and/oran action parameter related to a jitter interval. The action parameterrelated to the target device may include information as to whether thestarted application is for a PC or a CD.

As described in the foregoing, examples of the action parameters mayinclude an action parameter that provides data necessary to execute theapplication. This action parameter may include data necessary to performthe corresponding action.

FIG. 45 illustrates a method of providing the broadcast service by thetransmitting side according to an embodiment of the present invention.

The method of providing the broadcast service by the transmitting sideaccording to the present embodiment may include generating service dataand service signaling information, generating a service list table,processing a streaming component, an enhancement component, the servicesignaling information, and/or the service list table in transmissionpackets, generating link layer packets, and/or physically processing thelink layer packets to generate and transmit a broadcast signal.

First, a first mode of a transmitting side may generate the service dataof the broadcast service and the service signaling information forsignaling the service data. Here, the service data may include astreaming component having data related to real-time content of thebroadcast service and/or an enhancement component having data related tothe application-based enhancement of real-time content.

The streaming component may have data necessary to reproduce real-timecontent. For example, the streaming component may correspond to a videocomponent, an audio component, or a closed captioning component. Asdescribed in the foregoing, the application-based enhancement mayprovide an interactive viewing experience for the broadcast service. Asdescribed in the foregoing, the application-based enhancement mayprovide an interactive service through an application for a broadcastprogram, etc. The enhancement component may include data for providingthe application-based enhancement. The enhancement component maycorrespond to the application, and may correspond to a data/content itemfor using the application. Here, the enhancement component maycorrespond to an NRT component and be delivered through the ROUTEprotocol, etc.

In addition, the service may further include a plurality of servicecomponents. Here, the service signaling information may refer to theabove-described SLS.

A second module of the transmitting side may generate the service listtable. The service list table may correspond to the above-described SLT.The SLT may include bootstrap information that indicates a transmissionsession in which the SLS is delivered. Here, the transmission sessionmay correspond to a ROUTE session or an MMTP session. The bootstrapinformation may refer to an IP address, a UDP port number, etc. of theROUTE session or the MMTP session. The first module and the secondmodule may correspond to modules serving as service providers whichmanage generation of a service.

A third module of the transmitting side may process a streamingcomponent, an enhancement component, the service signaling information,and/or the service list table in transmission packets. This step maycorrespond to a step for UDP/IP-processing the service component data,the SLS, and the SLT and encapsulating the service component data, theSLS, and the SLT in an IP packet in order to deliver the service datathrough a broadcast network. Here, a transmission packet may correspondto an IP packet. Here, it is presumed that an FIC is not used and theSLT is encapsulated in the IP packet and delivered through a PLP. Thethird module may correspond to a hardware module that manages a UDP/IPlayer.

A fourth module of the transmitting side may perform link layerprocessing on transmission packets to output at least one link layerpacket. Link layer processing has been described above. Here, the fourthmodule may correspond to a module that performs an operationcorresponding to a link layer. The fourth module may perform headercompression/overhead reduction or packet encapsulation.

A fifth module of the transmitting side may physically process the atleast one link layer packet. The fifth module may correspond to a modulethat manages operation of a physical layer. The fifth module maygenerate BB packets from the link layer packet and perform encoding, bitinterleaving, constellation mapping, etc. on the BB packets. Thereafter,it is possible to perform time interleaving, frame building, frequencyinterleaving, etc., and then a modulation process according to an OFDMscheme. In addition, the fifth module may transmit a broadcast signalincluding physically processed data. Here, the fourth module may beincluded in the fifth module. The fourth and fifth modules may bereplaced by one integrated module. The fifth module may include aplurality of internal blocks. The fourth module may be included in oneof the blocks of the fifth module.

In the method of providing the broadcast service by the transmittingside according to the present embodiment, the service signalinginformation may include an AST that signals applications which providethe application-based enhancement. The AST has been described above. Asdescribed in the foregoing, the AST may be delivered together with theSLS for the broadcast service. In other words, the AST may be deliveredthrough the ROUTE/LCT session in which the SLS is delivered. Accordingto a given embodiment, the AST may be delivered through a broadbandnetwork, etc. In this case, the AST may be requested using URLinformation of the SLT.

In addition, in the present embodiment, the enhancement component maycorrespond to an NRT component of the broadcast service. As described inthe foregoing, the enhancement component may include a relatedapplication or content item with respect to an application enhancementfor the broadcast service.

In a method of providing the broadcast service by the transmitting sideaccording to another embodiment of the present invention, the servicesignaling information may include a user service bundle description(USBD), a service-based transport session instance description (S-TSID),and/or a media presentation description (MPD). As described in theforegoing, the USBD may include URI information for referencing theS-TSID and/or URI information for referencing the MPD. The S-TSID mayinclude transmission session description information related to atransmission session in which a streaming component and an enhancementcomponent of the broadcast service are delivered. The S-TSID may provideinformation about an LCT session in which service components of acertain service are delivered. Examples of this information may includetsi information and/or IP/UDP information of a ROUTE session. The MPDmay include reproduction-related information of the streaming componentof the broadcast service. The MPD may provide description informationfor reproducing DASH representation, etc. included in video and audiocomponents. In other words, the MPD may provide segment URL informationof service components and context information of media segments.

In a method of providing the broadcast service by the transmitting sideaccording to another embodiment of the present invention, the AST mayinclude application elements including information about applicationswhich provide an application-based enhancement. The AST may includeapplication elements as in the above-described embodiment. Theseapplications may be used to provide the application enhancement. Therespective application enhancement may include content item elementsincluding information about content items used by the applications.Content item elements may be present as child elements of theapplication elements described above. The respective content itemelements may describe content items used by the application. At leastone content item element may describe a content item included in anenhancement component. The above-described enhancement component mayhave a certain content item used by a certain application. This contentitem may be described by the AST. In this way, the application-basedenhancement may be provided using the content items acquired through theAST.

In a method of providing the broadcast service by the transmitting sideaccording to another embodiment of the present invention, the S-TSID mayinclude transmission session identifier information that indicates atransmission session in which an enhancement component is delivered. TheS-TSID may indicate a transmission session in which an enhancementcomponent corresponding to an NRT component is delivered. Tsiinformation may be provided to indicate the transmission session.Depending on cases, IP/UDP information for identifying a ROUTE sessionmay be provided. A reception system may acquire enhancement componentsfor providing an application-based enhancement through the S-TSID. Atleast one content item element of the AST may further include contentlink information, and the content link information may be used toindicate an application which uses a content item included in theenhancement component. As described in the foregoing, an @ContentLinkageattribute may be included in a lower element of an application elementand/or a content item element of the AST. This attribute may be used toindicate an application in which the content item delivered in theenhancement component is used. This attribute may be used to connect theAST to the content item. Alternatively, this attribute may be used toconnect the AST to the application. In this way, the content itemacquired using the S-TSID may be used to provide the application-basedenhancement in connection with the application.

In a method of providing the broadcast service by the transmitting sideaccording to another embodiment of the present invention, the MPD mayfurther include a period element that describes reproduction-relatedinformation of a certain interval of real-time content. In apresentation of media content, a period is a concept corresponding to apart obtained by dividing the presentation in terms of time, and theperiod element may provide media reproduction description informationcorresponding to the part. As described in the forgoing, the periodelement may have an event stream element. This event stream element mayinclude a plurality of event elements. These event elements may includeinformation about events that signal actions to be performed by anapplication. In addition, the respective event elements may includepresentation time information and event identifiers of the events. Theevent identifiers may identify event instances. The presentation timeinformation may indicate start times of the events, and the start timesmay be indicated based on a time of the period. For example, a starttime of the period may be set to an offset, and a start time of anaction may be indicated using a difference from the start time of theperiod. This action may be referred to as an event according to context.

In a method of providing the broadcast service by the transmitting sideaccording to another embodiment of the present invention, the servicesignaling information may further include an EMT, and the EMT mayinclude event stream elements. Each of the event stream elements mayinclude event elements. These event elements may include informationabout events that signal actions to be performed by an application.Similarly, each of the event elements may include presentation timeinformation and an event identifier of the event.

In a method of providing the broadcast service by the transmitting sideaccording to another embodiment of the present invention, the EMT mayfurther include a period identifier and an MPD identifier of an MPD.Here, the MPD identifier may identify an MPD related to the EMT. Inother words, the MPD identifier may identify an MPD related to thecorresponding event. The period identifier may identify a period elementthat describes reproduction-related information of a certain interval ofreal-time content. This period element may identify a period related tothe corresponding event. Presentation time information may indicate astart time of an action based on an interval in a media presentationdescribed by the period element with respect to the period elementidentified by the MPD identifier and the period identifier. This actionmay be referred to as an event according to context.

A description will be given of a method of providing a broadcast serviceby a receiving side according to an embodiment of the present invention.This method is not illustrated in any figure.

The method of providing the broadcast service by the receiving sideaccording to the present embodiment may include receiving a broadcastsignal by a first module of the receiving side, physically processingthe broadcast signal to output link layer packets by a second module ofthe receiving side, link-processing the link layer packets to outputtransmission packets by a third module of the receiving side, acquiringan SLT and accessing an SLS by a fourth module of the receiving side,and/or acquiring a streaming component and/or an enhancement componentdelivered through a broadcast network using the SLS by a fifth module ofthe receiving side. Here, physical processing, link processing, etc. maycorrespond to reverse operations of those of the transmitting side.Here, service data may include a streaming component which includes dataabout real-time content of the broadcast service and/or enhancement datawhich includes data about application-based enhancement of real-timecontent. Service signaling information may include an AST which signalsapplications providing the application-based enhancement.

Methods of providing the broadcast service by the receiving sideaccording to embodiments of the present invention may correspond to themethods of providing the broadcast service by the transmitting sideaccording to the embodiments of the present invention described above.The methods of providing the broadcast service by the receiving side maybe performed by hardware modules corresponding to the modules used inthe methods of providing the broadcast service by the transmitting side(for example, the first, second, third, fourth, and fifth modules of thetransmitting side, etc.). The methods of providing the broadcast serviceby the receiving side may have embodiments corresponding to theembodiments of the methods of providing the broadcast service by thetransmitting side described above.

According to a given embodiment, the above-described steps may beomitted or replaced by other steps in which the same/similar operationsare performed.

FIG. 46 illustrates an apparatus for providing the broadcast service bythe transmitting side according to an embodiment of the presentinvention.

The apparatus for providing the broadcast service by the transmittingside according to the present embodiment may include the first second,third, fourth, and/or fifth modules of the transmitting side describedabove. The respective blocks and modules have been described above.

The apparatus for providing the broadcast service by the transmittingside according to the present embodiment and the internal modules/blocksmay perform the embodiments of the methods of providing the broadcastservice by the transmitting side of the present invention describedabove.

A description will be given of an apparatus for providing the broadcastservice by the receiving side according to an embodiment of the presentinvention. This apparatus is not illustrated in any figure.

The apparatus for providing the broadcast service by the receiving sideaccording to the present embodiment may include the first second, third,fourth, and/or fifth modules of the receiving side described above. Therespective blocks and modules have been described above.

The apparatus for providing the broadcast service by the receiving sideaccording to the present embodiment and the internal modules/blocks mayperform the embodiments of the methods of providing the broadcastservice by the receiving side of the present invention described above.

The internal modules/blocks of the apparatuses described above maycorrespond to processors for executing continuous processes stored in amemory, and may correspond to hardware elements located inside/outsidethe apparatuses according to a given embodiment.

According to a given embodiment, the above-described modules may beomitted or replaced by other modules for performing the same/similaroperations.

FIG. 47 illustrates an AST transmitted through a broadcast networkaccording to an embodiment of the present invention.

When the AST is transmitted through the broadcast network, an AST for anapplication enhancement may be transmitted through a service signalingchannel of the broadcast service to which the application enhancement isrelated. Here, the service signaling channel of the service may refer toa path through which the above-described SLS is delivered.

A broadcast signal (broadcast stream) having a certain frequency mayinclude service data and/or signaling data for the service. For example,the broadcast signal may be identified by the certain frequency.

The broadcast signal may include a first ROUTE session(sIP#A/dIP#A/dPort#A). The service data for the service may betransmitted through the first ROUTE session.

The service data may include a video component and/or an audio componentfor the service. The video component may include at least one videosegment having video data. The audio component may include at least oneaudio segment having audio data. The video component may be transmittedthrough a certain transmission session of the first ROUTE session. Theaudio component may be transmitted through another transmission sessionof the first ROUTE session.

The signaling data may include low level signaling data and/or servicelayer signaling data. For example, the low level signaling data mayinclude an FIT and/or an SLT. The low level signaling data may beincluded in an IP/UDP packet and transmitted. The service layersignaling data may be referred to as an SLS. The service layer signalingdata may include a USBD, an MPD, an S-TSID, and/or an AST. The USBD, theMPD, the S-TSID, and/or the AST may be transmitted through a certaintransmission session. For example, the SLS may be transmitted through acertain LCT transmission session included in the first ROUTE session(sIP#A/dIP#A/dPort#A). Specifically, the SLS may be transmitted througha first transmission session (tsi-sls) specified by tsi=0.

The first ROUTE session (sIP#A/dIP#A/dPort#A) may be identified by acombination of a source IP Address (sIP#A), a destination IP Address(dIP#A), and a destination port number (dPort#A). In addition, the firstROUTE session may be transmitted through at least one PLP. For example,the first ROUTE session may be transmitted through a first PLP (PLP #A).Further, the first ROUTE session may include the first transmissionsession (tsi-sls), a second transmission session (tsi-app), and/or athird transmission session (not illustrated).

The first transmission session (tsi-sls) may include at least oneservice layer signaling information. For example, the service layersignaling information may include at least one of the USBD, the MPD, theS-TSID, and/or the AST described above.

The second transmission session (tsi-app) may include at least oneapplication. For example, the application may refer to a set ofdocuments (HTML, CSS, JavaScript, etc.) included in anenhancement/interactive service.

The third transmission session may include a video component. Forexample, the video component may include at least one video segment. Atransmission object identifier for the video segment may have a certainvalue.

Hereinafter, the SLT (or FIT) will be described.

The SLT enables the receiver to create a basic service list andbootstrap discovery of an SLS for each service. The SLT may betransmitted through UDP/IP. The SLT may include bootstrappinginformation for acquiring basic information and service layer signalinginformation related to the service.

For example, the SLT may include a Broadcast_Stream_id attribute and afirst service element (Service #A).

The Broadcast_Stream_id attribute is an identifier of a whole broadcaststream. A value of a Broadcast_Stream_id field may be unique at aregional level.

The first service element (Service #A) may include at least one of aserviceId attribute and/or a signaling_broadcast element.

The serviceId attribute may be an integer for uniquely identifying thecorresponding service in a range of a broadcast region.

The signaling_broadcast element may include information for signalinginformation for the service transmitted through the broadcast network.The signaling_broadcast element enables the receiver to bootstrapdiscovery of an SLS for each service.

The signaling_broadcast element may include at least one of a source IPAddress, a destination IP Address, a destination port number, a PLPID,and a transmission session identifier (TSI) related to an SLS for eachservice.

For example, the source IP Address, the destination IP Address, and/orthe destination port number may indicate the first ROUTE session(sIP#A/dIP#A/dPort#A). In addition, the PLPID may indicate the first PLP(PLP #A). Further, the TSI may indicate the first transmission session(tsi-sls).

Hereinafter, the SLS will be described.

The SLS may be transmitted through the broadcast network. The SLS may betransmitted through a certain LCT transmission session included in thefirst ROUTE session (sIP#A/dIP#A/dPort#A). Specifically, the SLS may betransmitted through the first transmission session (tsi-sls) specifiedby tsi=0. The SLS may include at least one of a USBD, an MPD, an S-TSID,and/or an AST.

The USBD may describe service layer attributes. In addition, the USBDmay include reference information (or a URI) referencing the MPD and/orthe S-TSID. Details of the USBD (C620210) may include whole contentabout the USBD described above.

The MPD may include resource identifiers for separate media componentsof a linear/streaming service. For example, the MPD may include a DASHMPD for all components transmitted through a mobile broadcast network, ageneral broadcast network, and/or an Internet protocol network. The DASHMPD may include a formalized description of DASH Media Presentation. TheDASH MPD may include resource identifiers for separate media componentsof the linear/streaming service. In addition, the DASH MPD may includecontext of resources identified in the media presentation. For example,the resource identifiers may correspond to information for identifyingrepresentation related to a component for the service. For example, theresource identifiers may have a form of a segment URL.

The S-TSID is a type of SLS XML fragment that provides all sessiondescription information for at least one transmission session fortransmitting at least one content component of the service.

The S-TSID may include a first ROUTE session element (RS) that providesinformation about a ROUTE session for a service and/or a componentincluded in the service. The first ROUTE session element (RS) mayinclude transmission path information for the first ROUTE session. Inaddition, the first ROUTE session element (RS) may include informationabout a transmission session (or a layered coding transport session)included in the ROUTE session. For example, the first ROUTE sessionelement (RS) may include a second transmission session element (LS)including information about the second transmission session. The secondtransmission session element (LS) may include transmission pathinformation for the second transmission session.

Specifically, the second transmission session element (LS) may include atsi attribute for identifying a transmission session in which a contentcomponent for the service is transmitted and a SrcFlow element thatdescribes a source flow included in the ROUTE session. The SrcFlowelement may include an nrt attribute that indicates whether the SrcFlowelement transmits NRT service data. Alternatively, the SrcFlow elementmay include an rt attribute that indicates whether the SrcFlow elementtransmits streaming media data. In other words, the nrt attribute mayperform the same function as that of the rt attribute. Further, the nrtattribute and the rt attribute may be replaced by each other. Forexample, when the tsi attribute corresponds to “tsi-app”, thecorresponding transmission session element may include information forthe second transmission session. In addition, when the nrt attributecorresponds to “true”, the SrcFlow element may transmit NRT servicedata.

The AST may include signaling information for an application. Details ofthe AST may include all of the above-described content.

The AST may include a ContentLinkage attribute. The ContentLinkageattribute may indicate an application that uses a corresponding contentitem. Signaling for a certain application may be performed by a value ofthis attribute and information about events (EventStream element, emsgbox, etc.) to be described below.

For example, the ContentLinkage attribute may provide an applicationidentifier for identifying an application which is transmitted throughthe second transmission session. Alternatively, the ContentLinkageattribute may provide a transmission session identifier for identifyingthe second transmission session (or LCT session).

A broadcast receiver may acquire a service based on signaling data.Specifically, the broadcast receiver may acquire low level signalingdata, and acquire service layer signaling data based on the low levelsignaling data.

In addition, the broadcast receiver may acquire an attribute of theservice using the service layer signaling data (USBD). Further, thebroadcast receiver may refer to and/or acquire an MPD and/or an S-TSIDusing the USBD.

In addition, the broadcast receiver may acquire information about atleast one component (or representation) for the service using theservice layer signaling data (USBD and/or MPD). For example, thebroadcast receiver may acquire information about a video component.

In addition, the broadcast receiver may acquire transmission pathinformation of at least one component using the service layer signalingdata (S-TSID). Further, the broadcast receiver may acquire transmissionpath information of another component for the at least one componentusing the service layer signaling data (S-TSID). For example, the othercomponent for the at least one component may include the application.

In addition, the broadcast receiver may acquire service data for theservice based on the service layer signaling data (transmission pathinformation). For example, the broadcast receiver may receive theapplication in non-real time through the second transmission session(tsi-app).

In addition, the broadcast receiver may acquire information foridentifying the application based on the service layer signaling data(AST).

The broadcast receiver may operate the application at predeterminedtiming while reproducing the video component.

FIG. 48 illustrates an AST transmitted through a broadband networkaccording to an embodiment of the present invention.

When the AST is transmitted through the broadband network, the AST maybe acquired through a query. This query may be generated usinginformation about a base URL in an SLT. This base URL may correspond toURL information for acquiring the AST. Here, the SLT may correspond toan SLT including bootstrap information for a broadcast service relatedto the AST.

A broadcast signal (broadcast stream) having a certain frequency mayinclude service data and/or signaling data for the service. Thebroadcast signal may include a first ROUTE session(sIP#A/dIP#A/dPort#A). The first ROUTE session may be transmittedthrough a first PLP (PLP #A). In addition, the first ROUTE session mayinclude a first transmission session (not illustrated), a secondtransmission session (tsi-app), and/or a third transmission session (notillustrated). The first transmission session may include at least oneservice layer signaling information. The second transmission session(tsi-app) may include at least one application. The third transmissionsession may include a video component. Content about the first ROUTEsession (sIP#A/dIP#A/dPort#A), the first PLP (PLP #A), the firsttransmission session, the second transmission session (tsi-app), and/orthe third transmission session may include all of the above-describedcontent about the first ROUTE session (sIP#A/dIP#A/dPort#A), the firstPLP (PLP #A), the first transmission session, the second transmissionsession (tsi-app), and/or the third transmission session.

Hereinafter, the SLT (or FIT) will be described.

Content about the SLT according to an embodiment of the presentinvention may include all of the above-described content of the SLT.Hereinafter, a description will be given focusing on differences.

For example, the SLT may include a Broadcast_Stream_id attribute and afirst service element (Service #A). The first service element (Service#A) may include at least one of a serviceId attribute and/or asignaling_broadband element.

The serviceId attribute may correspond to an integer for uniquelyidentifying the corresponding service in a range of a broadcast region.

The signaling_broadband element may include path information (or URL)for accessing Internet signaling information (for example, SLS) for theservice. The signaling_broadband element enables the receiver tobootstrap discovery of an SLS for each service. In this case, the SLSmay be transmitted through the broadband network.

The signaling_broadband element may include broadbandServerURL AST whichincludes path information (or URL) for accessing the AST for theservice. In this case, the AST may be transmitted through the broadbandnetwork.

Hereinafter, the SLS will be described.

The SLS may include at least one of a USBD, an MPD, an S-TSID, and/or anAST. Content related to the SLS may include all of the above-describedcontent about the SLS. However, one difference is that the SLS may betransmitted through the broadband network.

The broadcast receiver according to the present embodiment may receive,through a broadcast network, a broadcast signal including at least oneof service data and signaling data (for example, low level signalingdata or SLT) for the service.

The broadcast receiver according to the present embodiment may acquirethe service based on the signaling data. Specifically, the broadcastreceiver may acquire the low level signaling data, and acquire servicelayer signaling data based on the low level signaling data. The servicelayer signaling data may be transmitted through the broadband network.

In addition, the broadcast receiver may acquire an attribute of theservice using the service layer signaling data (USBD). Further, thebroadcast receiver may refer to and/or acquire the MPD and/or the S-TSIDusing the USBD.

In addition, the broadcast receiver may acquire information about atleast one component (or representation) for the service using theservice layer signaling data (USBD and/or MPD). For example, thebroadcast receiver may acquire information about a video component.

In addition, the broadcast receiver may acquire transmission pathinformation of at least one component using the service layer signalingdata (S-TSID). Further, the broadcast receiver may acquire transmissionpath information of another component for the at least one componentusing the service layer signaling data (S-TSID). For example, the othercomponent for the at least one component may include the application.

In addition, the broadcast receiver may acquire service data for theservice based on the service layer signaling data (transmission pathinformation). For example, the broadcast receiver may receive theapplication in non-real time through the second transmission session(tsi-app).

In addition, the broadcast receiver may acquire information foridentifying the application based on the service layer signaling data(AST).

The broadcast receiver may operate the application at predeterminedtiming while reproducing the video component.

FIG. 49 illustrates an event transmitted in the form of an EventStreamelement through a broadcast network according to an embodiment of thepresent invention.

The event may be transmitted in the form of the EventStream elementwhich appears in a Period element of an MPD. Content about theEventStream element which is transmitted through the broadcast networkmay include all of the above-described content about the EventStreamelement.

A broadcast signal (broadcast stream) having a certain frequency mayinclude service data and/or signaling data for the service. Thebroadcast signal may include a first ROUTE session(sIP#A/dIP#A/dPort#A). The first ROUTE session may be transmittedthrough a first PLP (PLP #A). In addition, the first ROUTE session mayinclude a first transmission session (tsi-sls), a second transmissionsession (tsi-app), and/or a third transmission session (notillustrated). The first transmission session (tsi-sls) may include atleast one service layer signaling information. For example, the servicelayer signaling information may include at least one of the USBD, theMPD, the S-TSID, and/or the AST described above. The second transmissionsession (tsi-app) may include at least one application. The thirdtransmission session may include a video component. Content about thefirst ROUTE session (sIP#A/dIP#A/dPort#A), the first PLP (PLP #A), thefirst transmission session, the second transmission session (tsi-app),and/or the third transmission session may include all of theabove-described content about the first ROUTE session(sIP#A/dIP#A/dPort#A), the first PLP (PLP #A), the first transmissionsession, the second transmission session (tsi-app), and/or the thirdtransmission session.

Hereinafter, an SLT will be described.

The SLT enables the receiver to create a basic service list andbootstrap discovery of an SLS for each service. For example, the SLT mayinclude path information for the first ROUTE session(sIP#A/dIP#A/dPort#A). In addition, the SLT may include path informationfor the first transmission session (tsi-sls). Content about the SLTaccording to the present embodiment may include all of theabove-described content about the SLT.

Hereinafter, the SLS will be described.

The SLS may include at least one of a USBD, an MPD, an S-TSID, and/or anAST. Content related to the SLS may include all of the above-describedcontent about the SLS. Hereinafter, the MPD will be described in furtherdetail.

The MPD corresponds to service signaling information for a certainservice, and may provide signaling information at a time interval of theservice referred to as a period. Signaling information related to theperiod is included in an MPD Period element, and this Period element mayinclude an EventStream element. The EventStream element may providesignaling (event) necessary for operations of applications during theperiod of the service.

The EventStream element may include a schemeIdUri attribute, a valueattribute, a timescale attribute, and/or at least one Event sub-element.Each Event sub-element may include a presentationTime attribute, aduration attribute and/or an id attribute. Details of the EventStreamelement may include all of the above-described content about theEventStream element.

For example, the schemeIdUri attribute may have a value of“urn:uuid:XYZY”. In addition, the value attribute may have a value of“call”. Further, the timescale attribute may have a value of “1000”.

In addition, with regard to a first event, the presentationTimeattribute may have a value of “0”, the duration attribute may have avalue of “10000”, and/or the id attribute may have a value of “0”.Further, a data element/attribute may correspond to “+1 800 10101010”.

With regard to a second event, the presentationTime attribute may have avalue of “20000”, the duration attribute may have a value of “10000”,and/or the id attribute may have a value of “1”. Further, a dataelement/attribute may correspond to “+1 800 10101011”.

With regard to a third event, the presentationTime attribute may have avalue of “40000”, the duration attribute may have a value of “10000”,and/or the id attribute may have a value of “2”. Further, a dataelement/attribute may correspond to “+1 800 10101012”.

With regard to a fourth event, the presentationTime attribute may have avalue of “60000”, the duration attribute may have a value of “10000”,and/or the id attribute may have a value of “3”. Further, a dataelement/attribute may correspond to “+1 800 10101013”.

The broadcast receiver according to the present embodiment may receive abroadcast signal including at least one of service data and signalingdata (for example, low level signaling data or service layer signalingdata) for a service through a broadcast network.

The broadcast receiver according to the present embodiment may acquirethe service based on the signaling data. Specifically, the broadcastreceiver may acquire the low level signaling data, and acquire theservice layer signaling data based on the low level signaling data.

In addition, the broadcast receiver may acquire an attribute of theservice using the service layer signaling data (USBD). Further, thebroadcast receiver may refer to and/or acquire an MPD and/or an S-TSIDusing the USBD.

In addition, the broadcast receiver may acquire information about atleast one component (or representation) for the service using theservice layer signaling data (USBD and/or MPD). For example, thebroadcast receiver may acquire information about a video component.

In addition, the broadcast receiver may acquire transmission pathinformation of at least one component using the service layer signalingdata (S-TSID). Further, the broadcast receiver may acquire transmissionpath information of another component for the at least one componentusing the service layer signaling data (S-TSID). For example, the othercomponent for the at least one component may include the application.

In addition, the broadcast receiver may acquire service data for theservice based on the service layer signaling data (transmission pathinformation). For example, the broadcast receiver may receive theapplication in non-real time through the second transmission session(tsi-app).

In addition, the broadcast receiver may acquire information foridentifying the application based on the service layer signaling data(AST).

In addition, the broadcast receiver may operate the application based onthe event. For example, the event may be transmitted in the form of theEventStream element which appears in the Period element. The broadcastreceiver may operate the application at predetermined timing whilereproducing the video component.

FIG. 50 illustrates an event transmitted in the form of an emsg boxthrough a broadcast network according to an embodiment of the presentinvention.

The event may be transmitted in the form of the emsg box which appearsin segments of Representation (or Representation segments). Contentabout the emsg box transmitted through the broadcast network may includeall of the above-described content about the emsg box.

A broadcast signal (broadcast stream) having a certain frequency mayinclude service data and/or signaling data for a service. The broadcastsignal may include a first ROUTE session (sIP#A/dIP#A/dPort#A). Thefirst ROUTE session may be transmitted through a first PLP (PLP #A). Inaddition, the first ROUTE session may include a first transmissionsession (tsi-sls), a second transmission session (tsi-app), and/or athird transmission session (tsi-v). The first transmission session(tsi-sls) may include at least one service layer signaling information.For example, the service layer signaling information may include atleast one of the USBD, the MPD, the S-TSID, and/or the AST describedabove. The second transmission session (tsi-app) may include at leastone application. The third transmission session may include a videocomponent. The video component may include at least one video segmentwhich includes video data. The at least one video segment may includethe emsg box.

Content about the first ROUTE session (sIP#A/dIP#A/dPort#A), the firstPLP (PLP #A), the first transmission session, the second transmissionsession (tsi-app), and/or the third transmission session (tsi-v) mayinclude all of the above-described content about the first ROUTE session(sIP#A/dIP#A/dPort#A), the first PLP (PLP #A), the first transmissionsession, the second transmission session (tsi-app), and/or the thirdtransmission session (tsi-v).

Hereinafter, the emsg box included in the segments will be described.

The emsg box may provide signaling information for generic eventsrelated to a media presentation time. The emsg box may include at leastone of a schemeIdUri field, a value field, a timescale field, apresentationTimeDelta field, an eventDuration field, an id field, and/ora messageData field. Content about the emsg box may include all of theabove-described content of the emsg box.

Hereinafter, an SLT will be described.

The SLT enables the receiver to create a basic service list andbootstrap discovery of an SLS for each service. For example, the SLT mayinclude path information for the first ROUTE session(sIP#A/dIP#A/dPort#A). In addition, the SLT may include path informationfor the first transmission session (tsi-sls). Content about the SLTaccording to the present embodiment may include all of theabove-described content about the SLT.

Hereinafter, the SLS will be described.

The SLS may include at least one of a USBD, an MPD, an S-TSID, and/or anAST. Content related to the SLS may include all of the above-describedcontent about the SLS. Hereinafter, the S-TSID and/or the MPD will bedescribed in further detail.

The S-TSID may include a first ROUTE session element (RS) that providesinformation about a ROUTE session for a service and/or a componentincluded in the service. The first ROUTE session element (RS) mayinclude transmission path information for the first ROUTE session. Inaddition, the first ROUTE session element (RS) may include informationabout a transmission session (or a layered coding transport session)included in the ROUTE session. For example, the first ROUTE sessionelement (RS) may include a second transmission session element (LS)including information about the second transmission session. The secondtransmission session element (LS) may include transmission pathinformation for the second transmission session. In addition, the firstROUTE session element (RS) may include a third transmission sessionelement (LS) including information about the third transmission session.The third transmission session element (LS) may include transmissionpath information for the third transmission session.

Specifically, each of the second transmission session element (LS)and/or the third transmission session element (LS) may include a tsiattribute for identifying a transmission session in which a contentcomponent for the service is transmitted and a SrcFlow element thatdescribes a source flow included in the ROUTE session.

The SrcFlow element may include an nrt attribute that indicates whetherthe SrcFlow element transmits NRT service data. Alternatively, theSrcFlow element may include an rt attribute that indicates whether theSrcFlow element transmits streaming media data. In other words, the nrtattribute may perform the same function as that of the rt attribute.Further, the nrt attribute and the rt attribute may be replaced by eachother.

The SrcFlow element may further include an appID attribute whichincludes additional information mapped to a service (or an applicationservice) transmitted through a transmission session. The appID attributemay be referred to as a ContentInfo element. The ContentInfo element mayinclude additional information mapped to the service (or the applicationservice) transmitted through the transmission session. For example, theContentInfo element may include a representation identifier (ID) of DASHcontent and/or adaptation set parameters of DASH media representation inorder to select an LCT transmission session for rendering. Therepresentation ID is an ID related to a component for the service, andmay be referred to as an id attribute. Therefore, the appID attribute inthe SrcFlow element may be matched with an id attribute in aRepresentation element of the MPD.

With regard to the second transmission session element (LS), when thetsi attribute corresponds to “tsi-app”, the transmission session elementmay include information for the second transmission session. Inaddition, when the nrt attribute corresponds to “true”, the SrcFlowelement may transmit NRT service data. In other words, the applicationmay be transmitted in non-real time through the second transmissionsession (tsi-app).

With regard to the third transmission session element (LS), when the tsiattribute corresponds to “tsi-app”, the transmission session element mayinclude information for the third transmission session. In addition,when the nrt attribute corresponds to “false”, the SrcFlow element maytransmit real-time service data. Further, when the appID attributecorresponds to “rep_v1”, a representation ID of the video component maycorrespond to “rep_v1”. In other words, at least one video segment ofthe video component identified by “rep_v1” may be transmitted in realtime through the third transmission session (tsi-v).

The MPD may include resource identifiers for separate media componentsof a linear/streaming service. The MPD may include the Period element.The Period element may include an AdaptationSet element which includesinformation about the video component. The AdaptationSet element mayinclude at least one Representation element. The Representation elementmay include information about a representation related to the component.

The Representation element may include an id attribute for identifyingthe representation. For example, the id attribute may have a value of“rep_v1”. In other words, the id attribute may indicate the videocomponent transmitted through the third transmission session (tsi-v).

In addition, the Representation element may further include anInbandEventStream element that specifies the presence of an in-bandevent stream in the related representation. The InbandEventStreamelement of the Representation element of the MPD may signal whether anevent is present the emsg box in the segments.

The InbandEventStream element may include a schemeIdURI attribute and/ora value attribute. These two attributes may indicate a type of the eventin the emsg box. According to a given embodiment, these two attributesmay be used to identify the event. The schemeIdURI attribute and/or thevalue attribute included in the InbandEventStream element may be matchedwith a schemeIdURI attribute and/or a value attribute in the emsg box.For example, the schemeIdURI attribute may have a value of “event URI#1”, and the value attribute may have a value of “abc”.

The broadcast receiver according to the present embodiment may receive abroadcast signal including at least one of service data and signalingdata (for example, low level signaling data or service layer signalingdata) for a service through a broadcast network.

The broadcast receiver according to the present embodiment may acquirethe service based on the signaling data. Specifically, the broadcastreceiver may acquire the low level signaling data, and acquire theservice layer signaling data based on the low level signaling data.

In addition, the broadcast receiver may acquire an attribute of theservice using the service layer signaling data (USBD). Further, thebroadcast receiver may refer to and/or acquire an MPD and/or an S-TSIDusing the USBD.

In addition, the broadcast receiver may acquire information about atleast one component (or representation) for the service using theservice layer signaling data (USBD and/or MPD). For example, thebroadcast receiver may acquire information about a video component. Inthis instance, the Representation element of the MPD may include anInbandEventStream element that specifies the presence of the emsg box(or in-band event stream) in the video component.

In addition, the broadcast receiver may acquire transmission pathinformation of at least one component using the service layer signalingdata (S-TSID). Further, the broadcast receiver may acquire transmissionpath information of another component for the at least one componentusing the service layer signaling data (S-TSID). For example, the othercomponent for the at least one component may include the application.

In addition, the broadcast receiver may acquire service data for theservice based on the service layer signaling data (transmission pathinformation). For example, the broadcast receiver may receive theapplication in non-real time through the second transmission session(tsi-app). Further, the broadcast receiver may receive at least onevideo segment of the video component identified by “rep_v1” through thethird transmission session (tsi-v) in real time. The at least one videosegment may include the emsg box.

In addition, the broadcast receiver may acquire information foridentifying the application based on the service layer signaling data(AST).

In addition, the broadcast receiver may operate the application based onthe event. For example, the event may be included in the segments in theform of the emsg box. The broadcast receiver may operate the applicationat predetermined timing while reproducing the video component.

FIG. 51 illustrates an event transmitted in the form of an EventStreamelement through a broadband network according to an embodiment of thepresent invention.

The event may be transmitted in the form of the EventStream elementwhich is included in an EST transmitted through the broadband network.When the EST is transmitted through the broadband network, the EST maybe acquired through a query. This query may be generated using URLinformation in an ALT. This URL information may be URL information foracquiring the EST. Content about the EventStream element transmittedthrough the broadband network may include all of the above-describedcontent about the EventStream element.

A broadcast signal (broadcast stream) having a certain frequency mayinclude service data and/or signaling data for a service. The broadcastsignal may include a first ROUTE session (sIP#A/dIP#A/dPort#A). Thefirst ROUTE session may be transmitted through a first PLP (PLP #A). Inaddition, the first ROUTE session may include a first transmissionsession (tsi-sls), a second transmission session (tsi-app), and/or athird transmission session (not illustrated). The first transmissionsession (tsi-sls) may include at least one service layer signalinginformation. For example, the service layer signaling information mayinclude at least one of the USBD, the MPD (not illustrated), the S-TSID,and/or the AST described above. The second transmission session(tsi-app) may include at least one application. The third transmissionsession may include a video component. According to a given embodiment,the MPD may be omitted. Content about the first ROUTE session(sIP#A/dIP#A/dPort#A), the first PLP (PLP #A), the first transmissionsession, the second transmission session (tsi-app), and/or the thirdtransmission session according to the present embodiment may include allof the above-described content about the first ROUTE session(sIP#A/dIP#A/dPort#A), the first PLP (PLP #A), the first transmissionsession, the second transmission session (tsi-app), and/or the thirdtransmission session.

Hereinafter, an SLT will be described.

The SLT may include path information for the first ROUTE session(sIP#A/dIP#A/dPort#A). In addition, the SLT may include path informationfor the first transmission session (tsi-sls). Content about the SLTaccording to the present embodiment may include all of theabove-described content of the SLT.

Hereinafter, an SLS will be described.

The SLS may include at least one of a USBD, an MPD, an S-TSID, and/or anAST. Content about the SLS may include all of the above-describedcontent about the SLS. Hereinafter, the AST will be described in furtherdetail.

The AST may include a ContentLinkage attribute. The ContentLinkageattribute may indicate an application that uses a corresponding contentitem. Signaling for a certain application may be performed by a value ofthis attribute and information about events (EventStream element, emsgbox, etc.) to be described below.

For example, the ContentLinkage attribute may provide an applicationidentifier for identifying an application which is transmitted throughthe second transmission session. Alternatively, the ContentLinkageattribute may provide a transmission session identifier for identifyingthe second transmission session (or LCT session).

The AST may further include a BroadbandStaticEventURL attribute. TheBroadbandStaticEventURL attribute may include path information (or aURL) for accessing the EST for the service. In this case, the EST may betransmitted through the broadband network. The EST may include anEventStream element. The EventStream element may provide signaling(event) necessary for operations of applications.

The EventStream element may include a schemeIdUri attribute, a valueattribute, a timescale attribute, and/or at least one Event sub-element.Each Event sub-element may include a presentationTime attribute, aduration attribute and/or an id attribute. Details of the EventStreamelement may include all of the above-described content about theEventStream element.

For example, the schemeIdUri attribute may have a value of“urn:uuid:XYZY”. In addition, the value attribute may have a value of“call”. Further, the timescale attribute may have a value of “1000”.

In addition, with regard to a first event, the presentationTimeattribute may have a value of “0”, the duration attribute may have avalue of “10000”, and/or the id attribute may have a value of “0”.Further, a data element/attribute may correspond to “+1 800 10101010”.

With regard to a second event, the presentationTime attribute may have avalue of “20000”, the duration attribute may have a value of “10000”,and/or the id attribute may have a value of “1”. Further, a dataelement/attribute may correspond to “+1 800 10101011”.

With regard to a third event, the presentationTime attribute may have avalue of “40000”, the duration attribute may have a value of “10000”,and/or the id attribute may have a value of “2”. Further, a dataelement/attribute may correspond to “+1 800 10101012”.

With regard to a fourth event, the presentationTime attribute may have avalue of “60000”, the duration attribute may have a value of “10000”,and/or the id attribute may have a value of “3”. Further, a dataelement/attribute may correspond to “+1 800 10101013”.

The broadcast receiver according to the present embodiment may receive abroadcast signal including at least one of service data and signalingdata (for example, low level signaling data or service layer signalingdata) for a service through a broadcast network.

The broadcast receiver according to the present embodiment may acquirethe service based on the signaling data. Specifically, the broadcastreceiver may acquire the low level signaling data, and acquire theservice layer signaling data based on the low level signaling data.

In addition, the broadcast receiver may acquire an attribute of theservice using the service layer signaling data (USBD). Further, thebroadcast receiver may refer to and/or acquire an MPD and/or an S-TSIDusing the USBD.

In addition, the broadcast receiver may acquire information about atleast one component (or representation) for the service using theservice layer signaling data (USBD and/or MPD). For example, thebroadcast receiver may acquire information about a video component.

In addition, the broadcast receiver may acquire transmission pathinformation of at least one component using the service layer signalingdata (S-TSID). Further, the broadcast receiver may acquire transmissionpath information of another component for the at least one componentusing the service layer signaling data (S-TSID). For example, the othercomponent for the at least one component may include the application.

In addition, the broadcast receiver may acquire service data for theservice based on the service layer signaling data (transmission pathinformation). For example, the broadcast receiver may receive theapplication in non-real time through the second transmission session(tsi-app).

In addition, the broadcast receiver may acquire information foridentifying the application based on the service layer signaling data(AST). Further, the broadcast receiver may acquire the EST through thebroadband network based on the service layer signaling data (AST).

In addition, the broadcast receiver may operate the application based onthe event. For example, the event may be transmitted in the form of theEventStream element which is included in the EST transmitted through thebroadband network.

The broadcast receiver may operate the application at predeterminedtiming while reproducing the video component.

FIG. 52 illustrates an event transmitted in the form of an emsg boxthrough a broadband network according to an embodiment of the presentinvention.

The event may be transmitted in the form of the emsg box transmittedthrough the broadband network. In this case, the event may be deliveredthrough a live event server. Polling may be periodically performed usingthe live event server. When an event to be transmitted in thecorresponding period is present, the event server may deliver the eventto a receiver. Content about the emsg box transmitted through thebroadband network may include all of the above-described content aboutthe emsg box.

A broadcast signal (broadcast stream) having a certain frequency mayinclude service data and/or signaling data for a service. The broadcastsignal may include a first ROUTE session (sIP#A/dIP#A/dPort#A). Thefirst ROUTE session may be transmitted through a first PLP (PLP #A). Inaddition, the first ROUTE session may include a first transmissionsession (tsi-sls), a second transmission session (tsi-app), and/or athird transmission session (not illustrated). The first transmissionsession (tsi-sls) may include at least one service layer signalinginformation. For example, the service layer signaling information mayinclude at least one of the USBD, the MPD (not illustrated), the S-TSID,and/or the AST described above. The second transmission session(tsi-app) may include at least one application. The third transmissionsession may include a video component. According to a given embodiment,the MPD may be omitted. Content about the first ROUTE session(sIP#A/dIP#A/dPort#A), the first PLP (PLP #A), the first transmissionsession, the second transmission session (tsi-app), and/or the thirdtransmission session according to the present embodiment may include allof the above-described content about the first ROUTE session(sIP#A/dIP#A/dPort#A), the first PLP (PLP #A), the first transmissionsession, the second transmission session (tsi-app), and/or the thirdtransmission session.

Hereinafter, an SLT will be described.

The SLT may include path information for the first ROUTE session(sIP#A/dIP#A/dPort#A). In addition, the SLT may include path informationfor the first transmission session (tsi-sls). Content about the SLTaccording to the present embodiment may include all of theabove-described content of the SLT.

Hereinafter, an SLS will be described.

The SLS may include at least one of a USBD, an MPD, an S-TSID, and/or anAST. Content about the SLS may include all of the above-describedcontent about the SLS. Hereinafter, the AST will be described in furtherdetail.

The AST may include a ContentLinkage attribute. The ContentLinkageattribute may indicate an application that uses a corresponding contentitem. Signaling for a certain application may be performed using a valueof this attribute and information about events (EventStream element,emsg box, etc.) to be described below.

For example, the ContentLinkage attribute may provide an applicationidentifier for identifying an application which is transmitted throughthe second transmission session. Alternatively, the ContentLinkageattribute may provide a transmission session identifier for identifyingthe second transmission session (or LCT session).

The AST may further include a BroadbandStaticEventURL attribute. TheBroadbandStaticEventURL attribute may include path information (or aURL) for accessing the emsg box for the service. In this case, the emsgbox may be transmitted through the broadband network. The emsg box mayprovide signaling (event) necessary for operations of applications.

The emsg box may provide signaling information for generic eventsrelated to a media presentation time. The emsg box may include at leastone of a schemeIdUri field, a value field, a timescale field, apresentationTimeDelta field, an eventDuration field, an id field, and/ora messageData field. Content about the emsg box may include all of theabove-described content of the emsg box.

For example, the schemeIdUri field may have a value of “urn:uuid:XYZY”.

The broadcast receiver according to the present embodiment may receive abroadcast signal including at least one of service data and signalingdata (for example, low level signaling data or service layer signalingdata) for a service through a broadcast network.

The broadcast receiver according to the present embodiment may acquirethe service based on the signaling data. Specifically, the broadcastreceiver may acquire the low level signaling data, and acquire theservice layer signaling data based on the low level signaling data.

In addition, the broadcast receiver may acquire an attribute of theservice using the service layer signaling data (USBD). Further, thebroadcast receiver may refer to and/or acquire an MPD and/or an S-TSIDusing the USBD.

In addition, the broadcast receiver may acquire information about atleast one component (or representation) for the service using theservice layer signaling data (USBD and/or MPD). For example, thebroadcast receiver may acquire information about a video component.

In addition, the broadcast receiver may acquire transmission pathinformation of at least one component using the service layer signalingdata (S-TSID). Further, the broadcast receiver may acquire transmissionpath information of another component for the at least one componentusing the service layer signaling data (S-TSID). For example, the othercomponent for the at least one component may include the application.

In addition, the broadcast receiver may acquire service data for theservice based on the service layer signaling data (transmission pathinformation). For example, the broadcast receiver may receive theapplication in non-real time through the second transmission session(tsi-app).

In addition, the broadcast receiver may acquire information foridentifying the application based on the service layer signaling data(AST). Further, the broadcast receiver may acquire the emsg box throughthe broadband network based on the service layer signaling data (AST).

In addition, the broadcast receiver may operate the application based onthe event. For example, the event may be transmitted in the form of theemsg box transmitted through the broadband network.

The broadcast receiver may operate the application at predeterminedtiming while reproducing the video component.

FIG. 53 illustrates an API and an event listener according to anembodiment of the present invention.

FIG. 53(a) illustrates the listener.

An event processor may correspond to code executed in response tooccurrence of an event. For example, the event processor may correspondto JavaScript code for execution when the event occurs. The eventprocessor may include the event listener (or listener). Unlike an eventhandler which can process only one event for one element, the eventlistener may process at least one event for one element.

The listener may include a general signature of a document object model(DOM) event listener. Here, a DOM refers to a model (system) thatsupports the event handler such that the event handler is connectable toall element nodes.

The listener according to the present embodiment may include an objectof a StreamEvent type as a parameter. For example, the listener may havea form such as listener (StreamEvent event).

The object of the StreamEvent type delivered to the listener has anextended form of an object of a general DOM event type.

The object of the StreamEvent type may include a name attribute, a dataattribute, a text attribute, a status attribute, and/or a timeattribute.

The name attribute may indicate a name of an event. The name attributeis a read-only attribute, and may correspond to a string type.

The data attribute may indicate data of an event encoded as ahexadecimal number. For example, the data attribute may have a value of“0A10B81033”. The data attribute is a read-only attribute, and maycorrespond to a string type.

The text attribute may indicate text data of an event. For example, whenthe data attribute includes text, the text attribute may have values inASCII code. In addition, the text attribute may correspond to a childelement of an Event element for activation of the event, and includedata identified by a data identifier (dataID) which is specified in atrigger or specified in an Event element of an EMT. The text attributeis a read-only attribute, and may correspond to a string type.

The status attribute may indicate a state of an event. When the event isactivated in response to a trigger, the status attribute may indicate“trigger”. When several types of errors occur, the status attribute mayindicate “error”. The status attribute is a read-only attribute, and maycorrespond to a DOMString type.

The time attribute may indicate a time at which an event occurs. Thetime attribute is a read-only attribute, and may have an integer type.

FIG. 53(b) illustrates the API for addition and/or deletion of the eventlistener (or listener).

A method of processing an event according to an embodiment of thepresent invention may include a scheme of connecting the event listenerto a method of an object. This method is a method of connecting theevent listener to the method of the object, and executing the method ofthe object when the event occurs thereafter.

AddStreamEventListener API and/or removeStreamEventListener APIaccording to an embodiment of the present invention may be used tosupport this method of processing the event.

AddStreamEventListener API may add the listener for the event (forexample, the event listener or a stream event listener).AddStreamEventListener API may add a listener for an event designated byan event identifier (for example, eventID) within a range of a currentlyexecuted html application to an AST. When the event is activated by atrigger, the listener is called. In addition, an object of aTriggerEvent type (or a StreamEvent type) may be delivered. Listenersmay be added only when a video/broadcast object is in a presentingand/or stopped state.

AddStreamEventListener API may include at least one of a targetURLparameter, an eventName parameter, and/or a Listener parameter. Forexample, addStreamEventListener API may have a form such asaddStreamEventListener(targetURL, eventName, listener).

The targetURL parameter may indicate a URL of a StreamEvent object thatdescribes an event. Alternatively, the targetURL parameter may be mappedto a schemeIdURI attribute of a DASH EventStream element.

The eventName parameter may indicate a name of an event to besubscribed.

Alternatively, the eventName parameter may be mapped to a valueattribute of the DASH EventStream element.

The Listener parameter may indicate a listener for an event. TheListener parameter may correspond to a callback function. When the eventoccurs, the Listener parameter may be called as a parameter togetherwith a delivered StreamEvent object.

The targetURL parameter and the eventName parameter may correspond toevent identifiers for identifying an event. For example,addStreamEventListener API may include an event identifier (eventId)parameter and a listener parameter. For example, addStreamEventListenerAPI may have a form of addTriggerEventListener(String eventId,EventListener listener). The event identifier may correspond to anidentifier (for example, an EventID attribute or an id attribute) of anevent present in an event element in the EMT. In addition, the eventidentifier may correspond to an identifier (for example, an id field ofan emsg box) of an event dynamically updated by a trigger.

RemoveStreamEventListener API may delete a listener for an event.RemoveStreamEventListener API may delete a listener for an eventdesignated by an event identifier (for example, eventID).

RemoveStreamEventListener API may include at least one of a targetURLparameter, an eventName parameter, and/or a Listener parameter. Forexample, removeStreamEventListener API may have a form such asremoveStreamEventListener(targetURL, eventName, listener).

The targetURL parameter may indicate a URL of a StreamEvent object.Alternatively, the targetURL parameter may be mapped to a schemeIdURIattribute of a DASH EventStream element.

The eventName parameter may indicate a name of an event, subscription ofwhich needs to be deleted. Alternatively, the eventName parameter may bemapped to a value attribute of the DASH EventStream element.

The Listener parameter may indicate a listener for an event. TheListener parameter may correspond to a callback function. When the eventoccurs, the Listener parameter may be called out as a parameter togetherwith a delivered StreamEvent object.

The targetURL parameter and the eventName parameter may correspond toevent identifiers for identifying an event. For example,removeStreamEventListener API may include an event identifier (eventId)parameter and a listener parameter. For example,removeStreamEventListener API may have a form ofremoveTriggerEventListener(String eventId, EventListener listener). Theevent identifier may correspond to an identifier (for example, anEventID attribute or an id attribute) of an event present in an eventelement in the EMT. In addition, the event identifier may correspond toan identifier (for example, an id field of an emsg box) of an eventdynamically updated by a trigger.

The broadcast receiver according to the present embodiment may add alistener for an event based on addStreamEventListener API. In addition,the broadcast receiver may add a listener for an event based onremoveStreamEventListener API. AddStreamEventListener API and/orremoveStreamEventListener API may support synchronization of htmlapplication actions for broadcast programming.

FIG. 54 is a block diagram of an electronic device according to anembodiment of the present invention.

Referring to FIG. 54, the electronic device 100 includes a controller110 and a communication unit 120. The controller 110 may establish acommunication linkage with a companion device. In addition, when thecommunication linkage with the companion device is established, thecommunication unit 120 may exchange data with the companion device.

In addition, the controller 110 may include a network processor 111 andan application processor 112. The application processor 112 may requestconnection with the companion device from the network processor 111.

The network processor 111 may place the connection request received fromthe application processor 112 in a standby state since the networkprocessor 111 has not been connected with the companion device.Thereafter, the network processor 111 may receive a connection requestfrom the companion device. The network processor 111 may search for amatching connection request from the application processor 112 based oninformation received from the companion device. Upon finding thematching connection request, the network processor 111 may connect thecompanion device to the application processor 112.

As an example, the application processor 112 may correspond to anapplication module or an application browser. Alternatively, theapplication processor 112 may correspond to an HbbTV application. As anexample, the network processor 111 may be implemented as a networkmodule. Alternatively, the network processor 111 may correspond to aWebSocket server. The network processor 111 may interconnect theapplication processor 112 and the companion device. As an example, whenthe network processor 111 is implemented as the WebSocket server, eachof the application processor 112 and the companion device may beregarded as one client. In other words, the WebSocket server may connecta first client and a second client. Alternatively, each of the firstclient and the second client may be referred to as a peer. Depending oncases, the WebSocket server may be implemented as a separate deviceoutside the electronic device.

Meanwhile, the application processor 112 may operate one application. Inaddition, the companion device may operate one application. Theapplication processor 112 may be connected to the companion devicethrough the network processor 111. The companion device may receive datafrom the application processor 112 and receive and drive an applicationwhich is being driven by the application processor 112. Alternatively,each of the application processor 112 and the companion device may drivean application. The application processor 112 may be connected to thecompanion device to exchange data with the companion device. In thiscase, the electronic device 100 and the companion device may beconsidered to perform inter-application communication.

The WebSocket server may be used as a repeater and may generate acommunication channel between applications. The generated communicationchannel may enable the electronic device 100 and the companion device tocommunicate with each other. The WebSocket server may connect a channelbetween applications requesting the same information using a name ID andan origin ID of an application desiring to perform communication togenerate a communication channel. For example, the above-describedmethod may connect an application (client) and an application (client)without correcting a WebSocket API in HbbTV 2.0.

In this specification, respective terms are interchangeable.

FIG. 55 is a diagram for description of connection of a first clientaccording to an embodiment of the present invention.

FIG. 55 illustrates an electronic device 100 a and a companion device200 a. The electronic device 100 a may include an application processorand a network processor. As an example, the application processor maycorrespond to an HbbTV application or a first application, and thenetwork processor may correspond to an HbbTV WebSocket server. Thecompanion device 200 a may include a companion device processor. As anexample, the companion device processor may correspond to a companionapplication or a second client. The WebSocket server may need to bechanged to connect the clients. Hereinafter, an operation related tochange of the WebSocket server will be described. The changed WebSocketserver may be driven in HbbTV 2.0 TV.

Usually, a WebSocket client specifies the remote host to which it wishesto establish a connection, and the relative URI for the desired serviceon that host in the initial GET request along with the WebSocketconnection upgrade header. In HbbTV, however, it cannot be assumed that,the peer with which communications are to be established, has contactedthe WebSocket server yet. A connection request from a client in thespecial client-to-client mode, hence needs to be kept active untilanother, suitable peer arrives.

To achieve this, we define special uses for two fields of the WebSocketprotocol upgrade GET request. The Request-URI—which is part of theRequest-Line—takes a predefined format with a common prefix string. Thisfield is used to match corresponding communication peers. The Hostrequest-header field may either refer to the TV set running theWebSocket server (in which case communications with any peer with amatching Request-URI will be established), or to a specific companiondevice (in which case communications only with the designated device,and with a matching Request-URI will be established).

The format for the Request-URI field may be according to the followingABNF grammar:

HbbTV-Request-URI=“/hbbtv/” org-id “.” app-id

org-id=8HEX

app-id=4HEX

In response to such a request, an HbbTV WebSocket server may create astream head, that is a half open connection, which is associated withthe Request-URI supplied in the upgrade GET request by the client. Theserver may not respond immediately with a WebSocket Protocol Handshakeresponse, but instead wait for other peers to appear, and thereby keepthe first client waiting. If the server wishes to implement a time-out,it may respond with a 504 Gateway Timeout response.

Clients may not use the Sec-WebSocket-Protocol header when requestingclient-to-client connections. Servers may ignore theSec-WebSocket-Protocol header in requests for client-to-clientconnections. Servers may respond with a 403 Forbidden response if theHost header field in a client-to-client connection request does notspecify a device on any of the local sub-networks that the server isattached to. All HbbTV 2.0 WebSocket clients may use the methoddescribed in this section to request client-to-client connections fromHbbTV 2.0 WebSocket servers.

FIG. 56 is a diagram for description of connection of a second clientaccording to an embodiment of the present invention.

FIG. 56 illustrates an electronic device 100 a and a companion device200 a. The electronic device 100 a may include an application processorand a network processor. The network processor (for example, a WebSocketserver) may receive a connection request from an HbbTV application and acompanion application.

When another client requests a client-to-client connection using themethod as above, the server may also create a stream head for that newrequest as shown in FIG. 3. After a new stream head is created, theserver may search the collection of stream heads currently waiting to beconnected, for Request-URI and Host header field values matching thoseof the newly created stream head. If no match is found, the server mayadd the newly created stream head to the collection of stream headscurrently waiting to be connected, and may keep waiting for furtherclient-to-client connection requests.

FIG. 57 is a diagram for description of connection between the first andsecond clients according to an embodiment of the present invention.

FIG. 57 illustrates an electronic device 100 a and a companion device200 a. The electronic device 100 a may include an application processorand a network processor. The network processor (for example, a WebSocketserver) may connect an HbbTV application and a companion application.

If a newly created stream head is associated with the same Request-URIand Host header field values as a stream head in the collection ofstream heads currently waiting to be connected, the server may removethe matching stream head from the collection, and may establish afull-duplex communications channel between the two stream heads.

Once the two stream heads are connected, the server outputs all datareceived from one stream head immediately and without alteration to therespective other stream head. Thereby, a transparent communicationschannel is established between the two clients.

If one of the two clients sends a Close frame, the server may send acorresponding Close frame to the other client. If one of the two clientsdisconnects without sending a Close frame, the server may generate aClose frame, and may send the same to the other client.

In other words, the network processor may generate a stream head of theapplication processor and include the stream head in a stream head groupin response to a connection request from the application processor. Inaddition, in response to a connection request from the companion device,the network processor may generate a stream head of the companion deviceand verify whether a matching stream head is present. When the matchingstream head is present, the network processor may connect a stream headof the application processor and a stream head of the companion devicematching from the stream head group. In this instance, the networkprocessor may remove the matching stream head of the applicationprocessor or the matching stream head of the companion device from thestream head group.

FIG. 58 is a diagram for description of an additional connection requestaccording to an embodiment of the present invention.

Referring to FIG. 58, an HbbTV application (client) is connected to acompanion application (client) of a companion device 200 a. In addition,the HbbTV application may generate another stream head for anotherclient. The HbbTV application may be additionally connected to anotherapplication. Any stream head be removed from the collection of streamheads available for connecting, prior to establishing a client-to-clientconnection, such client-to-client connections are one-to-one only. If aclient wishes to communicate with more than one other client, it mayissue further connection requests to the server until the maximum numberof client-to-client connections it is able to process, has been reached.

WebSocket servers may not allow more than one stream head for the sameclient with the same Request-URI and Host to be on the collection ofstream heads currently waiting to be connected. If a client issuesanother client-to-client connection request with the same Request-URIand Host, before the previous one has been successfully connected or hastimed-out, the server may respond with a 403 Forbidden response.

Clients may have several client-to-client connection requests withdifferent Request-URI/Host combinations in the waiting to be connectedstate. Clients may not attempt to request another client-to-clientconnection with the same Request-URI/Host combination, before theprevious one was either successfully connected or has timed-out.

An “/hbbtv/orgid.appid scheme” for the Request-URI may be used as anescape into the special server client-to-client behavior in order toallow it to be implemented along with other, standard WebSocket serverfunctionalities, and without interfering with the same. The choice ofmatching the Request-URI and Host header field allows for twoapproaches: if a specific device is targeted by the Host header, theclient only wishes to talk to that specific other client. It may havelearnt about its existence through other means (e.g. SSDP as part ofUPnP). Secondly, if the Host header field targets the server, it will bethe same for all clients targeting the same server. This will result inonly the Request-URI being the discriminating factor for choosingsuitable communication peers. Hence, targeting the server in the Hostheader field effectively provides a wildcard match with any other clientusing the same Request-URI and also targeting the server. As such, bothdedicated and opportunistic connection establishment strategies arepossible.

Since the HbbTV 2.0 WebSocket server does not perform anyauthentication, authorization, or other verification, no trust can beassociated with client-to-client connections, or between clients andWebSocket servers. Clients that wish to exchange private, or otherwisesensitive information through a WebSocket server should therefore employend-to-end encryption to ensure the privacy of the communication.Likewise, such clients should employ cryptographic methods to establishthe identity and authenticity of any communication peers with which theywish to communicate through a WebSocket server. Since an HbbTV 2.0WebSocket server will establish connections only to clients who haveindicated the intent of being connected, it is very unlikely that asuccessful denial-of-service attack could be staged against anotherclient through an HbbTV WebSocket server. The client under attack cansimply stop asking the server to be connected to other clients.

Since it is defined that a server may reject simultaneous connectionattempts to a not yet connected Request-URI/Host combination, adenial-of-service attack might be attempted against the server itself.This could be done by repeatedly sending the same connection request toprovoke error responses, or by sending random connection requests in anattempt to exhaust the server's resources by creating many open streamheads. Both techniques are general strategies for attacking HTTPservers, and are not specific to WebSocket or HbbTV. It is henceexpected that any WebSocket server implementation (be it of the HbbTVflavor or not) will have suitable mitigation mechanisms (e.g. bystopping sending responses or creating stream heads).

FIG. 59 is a diagram for description of connection between clients whenan IP address is not present according to an embodiment of the presentinvention.

FIG. 59 illustrates a method of establishing a communication linkagebetween clients. The above-described inter-application communicationmethod based on WebSocket may enable a WebSocket server to connectapplications, URI paths (paths excluding a host name) of which are thesame, to perform inter-application communication. Inter-clientcommunication may divide an application driven in an electronic device(for example, a TV application) and an application driven in a companiondevice (for example, a CS application), thereby selectively performinginter-application communication.

As an example, in HbbTV, a Request-URI may be configured withoutincluding an IP address. A URI path may start with a reserved word(“hbbtv”) indicating HbbTV after a root (“/”), and may include anorganization or company ID (org-id) and an application ID (app-id)thereafter. The WebSocket server (network processor) may connectapplications, WebSocket API call URI paths of which are the same.

Syntax) GET “/hbbtv/”org-id“.”app-id

Example) GET/hbbtv/org.mychannel.myapp

Meanwhile, respective clients requesting connection may use the sameport or different ports. When the clients use the same port, theWebSocket server may recognize that a called application is an HbbTVapplication if IPs of applications calling a WebSocket API are the same,and may recognize that a called application is a companion deviceapplication if the IPs are different from each other. When the same portis used, the WebSocket server may simplify server implementation andtest, and discovery is unnecessary.

Next, a description will be given of a case in which the clients usedifferent ports. This case refers to a case in which an applicationdriven by a TV and an application driven by a companion device use thesame URI path and use different ports. As an embodiment, an HbbTVapplication driven by the TV may use port 8900, and an applicationdriven by the companion device may use port 8901. When the WebSocketserver knows ports used by a TV application and a companion application,it is possible to distinguish between communication between the TVapplication and the companion application and inter-companionapplication communication. When different ports are used, if severalcompanion devices are connected to a TV using the same hostrequest-header, clients may be easily connected by distinguishing thecompanion devices and the TV. Since the TV and the companion devicescommunicate with each other by being connected to the WebSocket serverthrough different ports while host request-headers are the same, it ispossible to distinguish between the companion device and the TV.Therefore, it is possible to take complementary measures in terms ofsecurity.

FIG. 60 is a diagram for description of standby connection forconnection between applications according to an embodiment of thepresent invention.

FIG. 60 illustrates an electronic device 100 a and a companion device200 a. A TV application of the electronic device 100 a may transmit aconnection request to a WebSocket server. The TV application is includedin the electronic device, and thus the WebSocket server may recognizethe TV application as a local application. In addition, a companionapplication is present outside the electronic device, and thus theWebSocket server may recognize the companion application as a remoteapplication. As an embodiment, an application may use methods below whenrequesting connection.

TABLE 27 String getApp2AppLocalBaseURL( ) Description Returns the baseURL of the application to application communication service localend-point. Arguments No arguments

TABLE 28 String getApp2AppRemoteBaseURL( ) Description Returns the baseURL of the application to application communication service remoteend-point. Arguments No arguments

As an embodiment, a network processor may execute W3C WebSocket API, andmay support a minimum of 200 simultaneous WebSocket connections.

The network processor may provide two service end points executed by aserver side of a WebSocket protocol specification. A local end point isused for connection to the network processor by an HbbTV application. Aremote end point may be connected to a home network by an application ofanother device, and is used to include a remote companion application oran HbbTV application driven by another HbbTV device. The HbbTVapplication may be connected to a local service end point of a networkprocessor in which the application operates or a remote service endpoint of another hybrid terminal in the same home network. It ispreferable that the network processor not be connected to a localservice end point of another device in the home network. For example,this can be achieved by placing a local service end point of a localloopback interface of the network processor. When another service endpoint executes the service side of the WebSocket protocol specification,and the HbbTV application or the companion application uses the serviceend point, the hybrid terminal should not place the service end point onthe same host and port combination as another service end point.

A basic URL for a service end point between applications may be aWebSocket URL. The WebSocket URL may define a host, a port, security,and a resource name of a service end point. A client needs to beconnected to a host and a port specified by the WebSocket URL of theservice end point. A resource name used in an initial protocol requestby the client conforms to ABNF grammar.

resource-name=base-url-resource-name app-endpoint

Base-url-resource-name is a resource name derived from a WebSocket URLof a service end point. App-endpoint is an application specification andmay be used for a client connection matching process corresponding tothe client. A message of the corresponding client may be deliveredthrough a WebSocket protocol. App-endpoint may be selected by anapplication developer to avoid collision. Therefore, app-endpoint maystart with an ID formatted in reverse DNS notation uniquely related tothe HbbTV application, the companion application, or a developerthereof. The hybrid terminal may support app-endpoint including acertain character permitted in a resource name by a minimum length of1000 characters and the WebSocket protocol specification.

A service end point may support a minimum of ten simultaneous TCP socketconnections from a client. When the client attempts to open connectionbetween a server and a TCP socket, the server may reject a request ifthe server cannot manage simultaneous connection. Otherwise, the servermay approve TCP socket connection, and start WebSocket protocolhandshake. When the server receives a request handshake from the client,the server may not immediately respond with a handshake response.Instead, the server may wait until connection is paired or connection ofthe client is canceled. In this state, standby connection may beconfigured as connection. When the server attempts to execute time-out,the server may respond with a 504 gateway time-out response.

The server may ignore a certain origin header of a request handshaketransmitted by the client. The client may not use aSec-WebSocket-protocol header when requesting connection betweenclients. The server may ignore the Sec-WebSocket-protocol header in arequest for connection between clients. The server may not approve arequest from the client for protocol extension using theSec-WebSocket-protocol header. When the client uses a Sec-WebSocketextension header, the server may not establish a connection using ascheme defined in the WebSocket protocol specification.

As illustrated in FIG. 60, an HbbTV application operating as a clientmay attempt connection with a local service end point which hasapp-endpoint of “org.mychannel.myapp” and base-url-resource-name of/hbbtv/. Connection with the companion device may be maintained in astandby state since the companion application has not been linked tocommunication between applications using the same app-endpoint.

FIG. 61 is a diagram for description of a new connection request forconnection with a second client according to an embodiment of thepresent invention.

Referring to FIG. 61, an HbbTV application (client) is connected to acompanion application (client) of a companion device 200 a. In addition,the HbbTV application may generate another stream head for anotherclient.

A server cannot permit one or more simultaneous standby connections fromthe same original IP address having the same app-endpoint. Whensuccessfully connected or when a client of an IP address prior totermination issues another connection request using the sameapp-endpoint, the server may respond with a 403 Forbidden response.

A client may desire establishment of connection between multiplesimultaneous clients through the same service end points using differentresource-name combinations. The client cannot attempt to request anotherconnection from an existing service end point before standby to connectthe service end point is successful or time-out or connection iscanceled. This operation of the client may be defined by a WebSocketprotocol specification.

According to FIG. 8, when a client desires to communicate with one ormore clients, the client may wait until existing standby connection ispaired. In this instance, an additional connection request may be issuedto the server until a maximum number of processable inter-clientconnections is reached. In other words, the HbbTV application maygenerate a new standby connection request to permit establishment ofinter-application communication.

Meanwhile, the client may include an IP address in a URI path.

FIG. 62 is a diagram for description of setting of a first client whenan IP address is included according to an embodiment of the presentinvention.

As an embodiment, the above-described URI path starts with a reservedword (“hbbtb”) indicating HbbTV after a root (“/”), and may include anorganization/company ID (org-id) and an application ID (app-id)thereafter. An application desiring to perform inter-applicationcommunication may add an IP address of a driven device to a URI path todesignate a target application. A WebSocket server may connectapplications, WebSocket API call URI paths of which are the same,according to IP to be used for communication.

Syntax) GET “/hbbtv/” target IP “/” org-id “.” app-id.

Example) GET /hbbtv/1.1.1.1/org.mychannel.myapp.

As an embodiment, a TV application A may be driven in IP 1.1.1.1, acompanion application B may be driven in IP 1.1.1.2 (a first userterminal), and a companion application C may be driven in IP 1.1.1.3 (asecond user terminal). In this instance, the TV application A mayattempt to communicate with the companion application C. The TVapplication A may include IP (1.1.1.3) in which the companionapplication C is driven in a URI path which is included in a WebSocketrequest. In addition, the companion application C may include IP(1.1.1.1) of the TV application A in a URI path which is included in aWebSocket request.

According to FIG. 62, a URI path may correspond tohbbtv/192.0.2.7/org.mychannel.myapp HTTP/1/1. Here, 192.0.2.7 maycorrespond to an IP address of a target application. 192.0.2.110 maycorrespond to an IP address thereof. In addition, org.mychannel.myappmay correspond to an application ID.

FIG. 63 is a diagram for description of setting of a first client and asecond client when IP addresses are included according to an embodimentof the present invention.

A WebSocket server may receive the URI request described with referenceto FIG. 62 from each of the clients. Referring to FIG. 63, the firstclient has an IP address of 192.0.2.110, and the second client has an IPaddress of 192.0.2.7. When the first client requests connection from thesecond client, a start point (From Host) is 192.0.2.110, and adestination (To Host) is 192.0.2.7. In addition, an application ID maybe org.mychannel.myapp. When the second client requests connection fromthe first client, a start point (From Host) is 192.0.2.7, and adestination (To Host) is 192.0.2.110. In addition, an application ID maybe org.mychannel.myapp. That is, start points and destinations of thefirst client and the second client may be opposite to each other.However, application IDs may be the same. The WebSocket server mayconnect matching clients to each other.

In addition, a URI path including a host IP address may be used.

For example, the URI path may be used as below.

Syntax) GET “/”hbbtv“/” host_address“/”org-id “.” app-id,

Example) GET/hbbtv/192.0.2.7/org. my channel. my app.

FIG. 64 is a diagram for description of an embodiment of connection to aplurality of second clients when IP addresses are included.

Referring to FIG. 64, an HbbTV has a certain IP address and includes anapplication ID of org.mychannel.myapp. A first companion application IPaddress is 192.0.2.7, and a second companion application IP address is192.0.2.1. Application IDs of first and second companion applicationscorrespond to org.mychannel.myapp. As described above with reference toFIG. 63, the WebSocket server may connect matching clients to eachother. Therefore, the WebSocket server may connect matching clients toeach other in response to requests from respective clients.

In this way, when an IP address is used in a URI path, both clientsdesignate an object to be connected. Thus, security is improved, clientsmay be connected to each other, and all information may be matchedwithout extra effort. Meanwhile, even when an IP address is used in aURI path, respective clients may use the same port or may use differentports.

FIG. 65 is a flowchart of a method of controlling an electronic deviceaccording to an embodiment of the present invention.

Referring to FIG. 65, in S1210, the electronic device is connected to acompanion device. The electronic device may include a network processorand an application processor. In the electronic device, the applicationprocessor may request connection to a companion device from the networkprocessor. Upon receiving a connection request from the companiondevice, the network processor may connect the application processorrequesting connection to the companion device.

As described in the foregoing, the application processor may correspondto an application module or an application browser. Alternatively, theapplication processor may correspond to an HbbTV application. Thenetwork processor may be implemented as a network module. Alternatively,the network processor may correspond to a WebSocket server. When thenetwork processor is implemented as the WebSocket server, each of theapplication processor and the companion device may be regarded as oneclient. Alternatively, each of a first client and a second client may bereferred to as a peer.

The application processor may transmit information about an electronicdevice operating in the network processor or host request headerinformation indicating companion device information to the networkprocessor. In addition, in response to a connection request from theapplication processor, the network processor may generate a stream headof the application processor and include the stream head in a streamhead group. Upon receiving a connection request from the companiondevice, the network processor may generate a stream head of thecompanion device and connect the generated stream head to a stream headof an application processor matched from a stream head group. In thisinstance, the network processor may remove the stream head of thematched application processor or the stream head of the companion devicefrom the stream head group. Meanwhile, the application processor maytransmit an IP address of a companion device to be connected, andrespective applications may use the same port.

In S1220, the electronic device may exchange data with the companiondevice. Through this process, the electronic device may be connected tothe companion device to perform communication.

The electronic device and the control method according to thespecification are not restricted to configurations and methods of theabove-described embodiments, and all or some of the respectiveembodiments may be selectively combined and variously changed.

FIG. 66 is a diagram illustrating configurations of a main physicaldevice and a companion physical device according to an embodiment of thepresent invention.

The embodiment of the present invention may provide a service guide in aterrestrial broadcast or mobile broadcast environment. In addition, theembodiment of the present invention may provide a service guide for aservice available in a next-generation hybrid broadcast environmentbased on a linkage between a terrestrial broadcast network and an IPnetwork.

The embodiment of the present invention may inform a user of variousservices providable in the next-generation hybrid broadcast environmentand content and/or component elements included in the services. In thisway, the user may conveniently check, select, and enjoy the services.

The embodiment of the present invention may structuralize one serviceand various content and/or component elements included in the serviceand form a reference configuration between the service and the contentand/or component elements. In this way, a broadcast receiver may easilyconfigure and provide the service and enable the user to easilyunderstand the service.

The embodiment of the present invention may extend the referenceconfiguration in which one service and various content and/or componentelements included in the service are linked to each other, therebyallowing the broadcast receiver and the user to save resources and/ortime consumed to search for the content and/or component elementsincluded in the service.

This figure illustrates an overall configuration of the main physicaldevice and the companion physical device according to the presentembodiment.

The main physical device L25010 according to the present embodiment is adevice for an interactive service, and may generally correspond to adevice controlled by the companion physical device L25020. The mainphysical device may be referred to as a main device, a main receivingdevice, a main receiver, a main display, a main screen, etc.

The main physical device L25010 according to the present embodiment mayinclude a broadcast interface L25030, a network interface L25040, amemory unit L25050, a control unit L25060, a display unit L25070, amultimedia module L25080, a storage L25090, a power supply L25100 and/ora user input interface L25110.

The broadcast interface L25030 may correspond to a physical device thatenables a message and/or data such as an AV stream, a service guide, anotification, etc. to be transmitted between a broadcaster and a device.The broadcast interface may receive a broadcast signal, signalinginformation, data, etc. from the broadcaster.

The network interface L25040 may correspond to a physical device thatenables a message, a advertisement and/or data such as a command, arequest, an action, a response, etc. to be transmitted between devices(for example, the main physical device and the companion physicaldevice). The network interface may receive a broadcast service,broadcast content, signaling information, an application, data, etc.from an Internet service provider.

The memory unit L25050 may correspond to a selective device implementedin various types of devices, and may correspond to a volatile physicaldevice capable of temporarily storing various types of data.

The control unit L25060 is a device that controls overall operation of asource device and/or a sink device, and may correspond to software orhardware. Here, the source device may correspond to a device thattransmits a message and/or data, and the sink device may correspond to adevice that receives the message and/or data. Therefore, the mainphysical device and the companion physical device according to thepresent embodiment may correspond to the source device or the sinkdevice.

The display unit L25070 may display data received through the networkinterface or data stored in the storage on a screen. In this instance,the display unit may operate under control of the control unit.

The multimedia module L25080 may reproduce various types of multimedia.The multimedia module may be included in the control unit or may beseparated from the control unit.

The storage L25090 may correspond to a volatile physical device capableof storing various types of data. For example, an SD card may correspondto the storage.

The power supply L25100 may correspond to a device that receivesexternal power and/or internal power to supply power necessary foroperations of other components under control of the control unit.

The user input interface L25110 may correspond to a device capable ofreceiving an input such as a command from the user.

The companion physical device L25020 according to the present embodimentis a device for an interactive service, and may correspond to a devicethat controls the main device. In general, the companion physical devicemay directly receive an input from the user. The companion physicaldevice may be referred to as a companion device, a second device, anadditional device, an auxiliary device, a companion receiving device, acompanion receiver, a companion display, a second screen, etc.

The companion physical device L25020 according to the present embodimentmay include a network interface, a memory unit, a control unit, adisplay unit, a multimedia module, a storage, a power supply and/or auser input interface.

Among components included in the companion physical device according tothe present embodiment, a component having the same name as that of acomponent included in the main device may perform the same function asthat of the component included in the main device.

FIG. 67 is a diagram illustrating a protocol stack for supporting ahybrid broadcast service according to an embodiment of the presentinvention.

A physical layer may receive a terrestrial broadcast signal and conventthis signal into an appropriate form.

IP encapsulation may acquire an IP datagram using information which isacquired from the physical layer. In addition, the IP encapsulation mayconvert the acquired IP datagram into a certain frame (for example, anRS frame, a GSE, etc.).

MPEG-2 TS Encapsulation may acquire an MPEG-2 TS using the informationwhich is acquired from the physical layer. In addition, the MPEG-2 TSEncapsulation may convert the acquired MPEG-2 TS into a certain frame(for example, an RS frame, a GSE, etc.).

A fast information channel (FIC) may deliver information for accessing aservice and/or content (for example, information about mapping between aservice ID and a frame, etc.).

Signaling may include signaling information for supporting effectiveacquisition of a service and/or content. The signaling information maybe expressed in binary and/or XML format, and may be transmitted througha terrestrial broadcast network and/or a broadband network.

Real-time broadcast audio/video (A/V) content and data may be expressedin ISO Base Media File Format (ISOBMFF), etc. and may be transmittedthrough the terrestrial broadcast network and/or the broadband networkin real time. NRT content may be transmitted based on IP/UDP/FLUTE. Inaddition, the real-time broadcast A/V content, data, and/or signalinginformation may be transmitted in real time through the IP network usingDASH, etc. In this instance, the real-time broadcast A/V content, data,and/or signaling information may be transmitted in response to a requestor may be transmitted by real-time streaming.

The present embodiment may provide a viewer with various enhancedservices such as an interactive service, a second screen service, etc.by combining data delivered through the above-described protocol stack.

FIG. 68 is a diagram illustrating an action mechanism of a UPnP schemeaccording to an embodiment of the present invention.

First, a description will be given of inter-device communication in thepresent invention.

Inter-device communication may refer to exchange of amessage/command/call/action/request/response between devices.

Various protocols such as Internet Control Message Protocol (ICMP),Internet Group Management Protocol (IGMP), etc. may be applied inaddition to IP in order to stably deliver a message to a desired targetdevice. In this instance, the present invention is not restricted to acertain protocol.

Various protocols such as Hypertext Transfer Protocol (HTTP), Real-timeTransport Protocol (RTP), Extensible Messaging and Presence Protocol(XMPP), File Transfer Protocol (FTP), etc. may be applied in order tocontain various types of information in a message used for inter-devicecommunication. In this instance, the present invention is not restrictedto a certain protocol.

When a message used for inter-device communication is delivered, variouscomponents such as a message header/message body, etc. defined by eachprotocol may be used. That is, data may be stored in each messagecomponent and delivered, and the present invention is not restricted toa certain message component. In addition, the data delivered by themessage may be delivered in various types (string, integer, floatingpoint, Boolean, character, array, list, etc.) defined by each protocol.A markup scheme such as Extensible Markup Language (XML), HypertextMarkup Language (HTML), Extensible Hypertext Markup Language (XHTML),JavaScript Object Notation (JSON), etc., text, an image format, etc. maybe applied in order to structurally express/deliver/store data ofcomplex content. In this instance, the present invention is notrestricted to a certain scheme.

In addition, a message used for inter-device communication may becompressed and delivered, and the present invention is not restricted toapplication of a compression technology of a certain scheme.

A description will be given of the UPnP scheme in the above descriptionof inter-device communication in the present invention. The UPnP schememay correspond to a case in which protocols of IP-TCP/UDP-HTTP arecombined in the above description of inter-device communication.

The action mechanism of the UPnP scheme according to the presentembodiment may refer to a communication mechanism between a UPnP controlpoint t87010 and a UPnP device t87020. Here, the UPnP control pointt87010 may correspond to an HTTP client, and the UPnP device t87020 maycorrespond to an HTTP server. The UPnP control point t87010 may delivera type of message referred to as an action to the UPnP device t87020such that the UPnP device t87020 may perform a certain operation.

Here, the UPnP control point t87010 may be paired with the UPnP devicet87020. Pairing may be performed through a process of deliveringdiscovery and description between respective devices. The UPnP controlpoint t87010 may acquire a control URL through a pairing process.

The UPnP control point t87010 may express each action in XML format. TheUPnP control point t87010 may deliver the action to an acquired controlURL using a POST method t87030 defined in HTTP. Each action maycorrespond to data actually to be delivered as a type of message, andmay be delivered in XML format in an HTTP POST message body. Here, eachaction may include a name, an argument, and related data. The HTTP POSTmessage body may deliver the name and/or the argument of each action.

In this instance, each action may be delivered to the same control URL.The UPnP device t87020 may parse the delivered action using an XMLparser. The UPnP device t87020 may perform a corresponding operationaccording to the parsed action.

In a UPnP protocol, each action may be defined by a name and used. Inaddition, the action name is delivered in the HTTP POST message body.Thus, even when only one URL is present for a target device, and onlyone HTTP POST method is used, infinite types of actions may beexchanged.

FIG. 69 is a diagram illustrating a REST mechanism according to anembodiment of the present invention.

A description will be given of a REST scheme in the above description ofinter-device communication in the present invention.

The illustrated REST mechanism according to the present invention mayrefer to a communication mechanism between a REST client t88010 and aREST server t88020. Here, the REST client t88010 may correspond to anHTTP client, and the REST server t88020 may correspond to an HTTPserver. Similarly to the above description, the REST client t88010delivers a type of message referred to as an action to the REST servert88020 such that the REST server t88020 may perform a certain operation.

In the present embodiment, the REST client t88010 may deliver eachaction to the REST server t88020 through a URI. An action name may beunnecessary in each action. Each action may only include arguments anddata.

Here, several methods such as GET, HEAD, PUT, DELETE, TRACE, OPTIONS,CONNECT, PATCH, etc. may be used in addition to POST among HTTP methods.In addition, a plurality of URIs accessing a target device whichperforms communication may be defined. Due to these characteristics, anaction may be delivered without defining an action name. A plurality ofURI values necessary for this REST scheme may be acquired in a processof delivering discovery or description.

Data or arguments that need to be delivered may be delivered by beingappended to a URI, or may be delivered by being included in an HTTP bodyin various forms (XML, JSON, HTML, TEXT, IMAGE, etc.).

The REST server t88020 may perform a certain operation according to thedelivered action.

The above-described inter-device communication is merely an example, andall contents proposed in the present invention are not restricted to theUPnP scheme, etc.

FIG. 70 is a diagram illustrating a service that enables a broadcastreceiver and companion devices to exchange an electronic service guide(ESG).

The ESG is a type of a channel or information which can be deliveredthrough service guide delivery descriptors, etc. in a certain session,and may provide a service guide for an application of broadcasting, aradio, or other media. The ESG may provide information related to aschedule or a program of a service in a form of a menu, etc. to theuser. The ESG may be provided through a broadcast channel or an Internetchannel (broadband).

The user may perform, through the ESG, operations such as serviceprovision scheduling, discovery of an entry point of a currentlyavailable service, service filtering according to preference, etc. Acontent provider may express, through the ESG, information about aservice and/or content in an available state, information related topurchase/subscription, service access information, etc. The ESG may bereferred to as a service guide or an electronic program guide (EPG).

In a conventional scheme, when the user executes a service guide such asan ESG while viewing a broadcast program in the broadcast receiver, theESG covers the viewed broadcast, causing inconvenience.

The present invention proposes a scheme of accessing ESG informationwithout hindering the user from viewing the broadcast program byexecuting the service guide such as the ESG, etc. in a companion device.In this case, the user may access the ESG without experiencinginconvenience when viewing the broadcast program. In addition, privacyof the user may be protected if the user uses a personal companiondevice to explore the ESG. Further, convenience may be enhanced byexploring the ESG through a UI of the companion device instead of a UIof the inconvenient broadcast receiver.

*714

The present invention may solve the above-mentioned problem by defininga protocol for delivering ESG information from the broadcast receiver tothe companion device in the next-generation hybrid broadcast environmentbased on the linkage between the terrestrial broadcast network and theIP network. In addition, the present invention proposes a protocolallowing a service of the broadcast receiver to be changed throughchannel information delivery in the companion device when the userselects a new service through the ESG provided in the companion device.

Embodiments of the present invention are described based on UPnP forconvenience of description. However, a protocol for communicationbetween the broadcast receiver and the companion device is notrestricted thereto. In addition, the embodiments of the presentinvention are described using an XML-based ESG as an example forconvenience of description. However, a format of the ESG is notrestricted thereto.

An example of the illustrated service for exchanging the ESG may bereferred to as an ESG service.

The ESG service may be a service for exchanging the ESG between thebroadcast receiver and the companion device. According to a givenembodiment, a service type of the ESG service may be defined asatsc3.0ESG-1, and a service ID of the ESG service may be defined as urn:atsc.org:serviceId:atsc3.0ESG.

Compatibility between respective devices may be needed for the ESGservice. According to a given embodiment, a UPnP device type may bedefined. The broadcast receiver has a device type ofurn:atsc.org:device:atsc3.0rcvr, and may operate as a UPnP-controlleddevice. The companion device may operate as a UPnP control point.

*719

A state variable, an action, etc. for the ESG service will be describedbelow.

FIG. 71 is a diagram illustrating an ESGData state variable according toan embodiment of the present invention.

A state variable referred to as ESGData may be defined for theabove-described ESG service. The ESGData state variable may be a statevariable indicating the ESG An ESGData state variable may store ESG dataof the ESG received through the broadcast/IP network. The illustratedESGData is created in XML format.

The ESGData state variable may store ESG data that expresses the ESG,that is, elements, attributes, and sub-elements in the ESG

A service element t54010 in the ESGData state variable may be an elementhaving information related to a service which is indicated by the ESG incontent included in the ESG Examples of lower information of thiselement may include Service@id that indicates a service ID,Service@version that indicates a version of the service, Service.Namethat indicates a service name, Service.Description corresponding todescription of the service, and/or Service.ServiceType that indicates aservice type. Here, A.B may refer to a B element corresponding to alower element of an A element, and A@a may refer to @a corresponding toa lower attribute of the A element.

Here, Service.ServiceType corresponding to a lower element of theservice, that is, a ServiceType element may indicate a service typewhich is indicated by the service. According to a given embodiment, 0may be unspecified, 1 may refer to Basic TV, 2 may refer to Basic Radio,. . . , 14 may refer to a linear service, 15 may refer to anapplication-based service, and 16 may refer to a companion screenservice. A value indicated by this element may vary according toembodiment.

A schedule element t54020 in the ESGData state variable may be anelement having schedule information of a service/program indicated bythe ESG in content included in the ESG Examples of lower information ofthis element may include information such as Schedule@id that indicatesa schedule ID, Schedule@version that indicates a schedule version, etc.In addition, examples of lower information of this element may includeinformation such as Schedule.ServiceReference that indicates a servicerelated to a schedule, Schedule. InteractivityDataReference thatindicates interactivity data related to the schedule,Scheudule.ContentReference that indicates content related to theschedule, etc.

A content element t54030 in the ESGData state variable may be an elementhaving content information indicated by the ESG in content included inthe ESG Examples of lower information of this element may includeinformation such as Content@id that indicates a content ID,Content@version that indicates a content version, Content.Name thatindicates a content name, Content.Description corresponding todescription of the content, Content.StartTime that indicates areproduction start time of the content, Content.EndTime that indicates areproduction end time of the content, etc. In addition,ComponentReference corresponding to a lower element of the contentelement may include information that references a component of thecontent related to the content. In this way, a related component may beverified, and information related to the component in the ESG may bereferred to.

A component element t54040 in the ESGData state variable may be anelement having component information of content indicated by the ESG incontent included in the ESG Examples of lower information of thiselement may include information such as Component@id that indicates acomponent ID, Component@version that indicates a component version, etc.In addition, examples of lower information of this element may includeinformation such as Language that indicates a language of a component,Length that indicates a length of the component, ParentalRating thatindicates rating of the component, ComponentType that indicates a typeof the component, ComponentRole that indicates a role of the component,a TargetDevice element that indicates a device targeted by thecomponent, etc. In addition, information such asPresentableVideoComponent, PresentableAudioComponent,PresentableCCComponent, PresentableAppComponent, etc. may be included inthis element depending on whether the component corresponds to areproducible video, audio, closed captioning, or application.

According to a given embodiment, the ESGData state variable may bedelivered to the companion device using an event scheme or an actionscheme.

The above-described elements, attributes, etc. are merely examples ofESGData, and elements/attributes, etc. in ESGData may be added, changed,or deleted according to configuration, format, etc. of the ESG

FIG. 72 is a diagram illustrating an ESGData state variable according toanother embodiment of the present invention.

The illustrated ESGData state variable is similar to the above-describedESGData state variable. However, the illustrated ESGData state variableis different from the above-described ESGData state variable in that acomponent element is included as a lower element of a content element.

A plurality of components is combined to configure one piece of content,and thus the component element may be included as a lower element of thecontent element. In addition, capability of a device in which eachcomponent is supported may be defined as a lower elementDeviceCapability and included as a lower element of the componentelement.

FIG. 73 is a diagram illustrating a process of delivering an ESGDatastate variable to a companion device using the event scheme according toan embodiment of the present invention.

First, an illustrated CD may refer to a companion device, and anillustrated primary device (PD) may refer to a receiver or a broadcastreceiver. The present embodiment presumes that the two devices arepaired. In addition, it is presumed that the companion device subscribesto the above-described ESG service. In this initial state t56010, theESGData state variable may have no value.

In t56020, a service/content provider may transit an ESG through abroadcast network or a broadband channel. The ESG may be receivedthrough a receiving unit or a network interface of the receiver. Here,the receiving unit may correspond to the above-described broadcastinterface or tuner.

In t56030, the receiver may signal the received ESG In t56040, ESG datamay be stored in the ESGData state variable.

In t56050, ESGData may be delivered to the companion device througheventing. The companion device receiving the ESGData state variable mayparse the ESGData state variable in t56060, and then the ESG may beexposed to the companion device through a UI according to a parsed valuein t56070. In this instance, to show the ESG to the user, the UI may beexpressed at a negative level of the companion device or may beexpressed in an application of the companion device.

A scheme in which the ESG is expressed in the companion device mayinclude various embodiments. According to a given embodiment, thecompanion device may directly expose the ESG to the user in any form inresponse to the received ESG According to another embodiment, inresponse to the received ESG, the companion device may transmit anotification message to the user, and may expose the ESG in response toexecution by the user. According to another embodiment, in response tothe received ESG, the companion device may keep ESG information in thebackground, and expose the ESG to the user when the user directlyexecutes an application in which the ESG can be viewed at a desiredtime.

FIG. 74 is a diagram illustrating a LastChangedESGData state variableaccording to an embodiment of the present invention.

A state variable referred to as LastChangedESGData may be defined forthe above-described ESG service. As described in the foregoing, if thewhole ESG is delivered to the companion device, all ESG data may bedelivered even when only a part of the ESG data is changed. Thus, it maybe inefficient. In this regard, the LastChangedESGData state variablethat stores only the changed ESG data may be defined. TheLastChangedESGData state variable may store only added/changed/deletedESG data in a newly received ESG when compared to the previous ESG

In t57010, the LastChangedESGData state variable may include an additionelement. This element may store added ESG data in the newly received ESGwhen compared to the previous ESG data. The newly added ESG data, thatis, elements/attributes may be stored as a sub-element of this element.For example, when ESG data related to a new service having a new serviceID is added to the newly received ESG, elements/attributes related tothe new service may be included in a lower tree of the addition element.In the illustrated embodiment, a service having an ID of“atsc.org/esg/service/3” is newly added. Thus, it can be understood thata service element of the service is included in the addition element. Inaddition, a service having a name of ABC is newly added with an ID of“atsc.org/esg/service/4”. Thus, it can be understood that a serviceelement of the service is included in the addition element. In addition,information such as Service, Content, Schedule, etc. may be included inthis element.

In t57020, the LastChangedESGData state variable may include amodification element. This element may store changed ESG data in thenewly received ESG when compared to the previous ESG data. The changedESG data, that is, elements/attributes may be stored as a sub-element ofthis element. For example, when lower information of a schedule havingan ID of “atsc.org/esg/schedule/3” is changed, a schedule element of theschedule may be stored in the modification element. In addition,information such as Service, Content, Schedule, etc. may be included inthis element.

In t57030, the LastChangedESGData state variable may include a deletionelement. This element may store deleted ESG data in the newly receivedESG when compared to the previous ESG data. The deleted ESG data, thatis, elements/attributes may be stored as a sub-element of this element.For example, when content elements having IDs of“atsc.org/esg/content/1” and “atsc.org/esg/content/2” are deleted fromthe newly received ESG, the content elements of the correspondingcontent may be stored in the deletion element. In addition, informationsuch as Service, Content, Schedule, etc. may be included in thiselement.

According to a given embodiment, the LastChangedESGData state variablemay be delivered to the companion device using the event scheme or theaction scheme. If the LastChangedESGData state variable is deliveredusing the event scheme, this state variable may be delivered to thecompanion device when a value of the state variable is changed. If theLastChangedESGData state variable is delivered using the action scheme,the LastChangedESGData state variable may be configured for changes oflatest ESG data at a point in time when a request for a value of thisstate variable is received and may be delivered to the companion device.

The companion device may update only changed ESG data when compared to apreviously stored ESG with reference to the received LastChangedESGDatastate variable. In this way, efficient delivery may be performed whencompared to a case in which the whole ESG is delivered.

The above-described elements, attributes, etc. are merely examples ofLastChangedESGData, and elements/attributes, etc. in LastChangedESGDatamay be further added, changed, or deleted according to configuration,format, etc. of the ESG

FIG. 75 is a diagram illustrating a process in which ESG data isdelivered to a companion device according to a GetESGData actionaccording to an embodiment of the present invention.

As described in the foregoing, the ESGData state variable may bedelivered to the companion device using the event scheme. However, wheneventing to the companion device is performed each time the ESG ischanged on a receiver side, a network may be overloaded or a companiondevice side may be burdened. Therefore, a GetESGData( ) action may bedefined such that the ESG data can be delivered only when the companiondevice wants.

The GetESGData( ) action may be an action for delivering the ESGDatastate variable to the companion device in the action scheme. In otherwords, when the companion device requests that a receiver transmit theESG data through this action, the receiver may deliver the ESGData statevariable to the companion device. An input argument of this action maynot be present, and an output argument of this action may be the ESGDatastate variable.

The GetESGData( ) action may be performed when the user desires to viewan ESG in the companion device and executes an ESG application, etc. Inthis case, the ESG data is received as a result of the action, and thereceived ESG data may be exposed through the ESG application. Inaddition, according to a given embodiment, the GetESGData( ) action maybe performed using a periodic polling scheme to store the ESG data inthe companion device, and then the stored ESG data may be exposed to theuser in response to execution of the ESG application.

The GetESGData( ) action may be simultaneously supported even when theESGData state variable supports the event scheme. However, in this case,when ESG data is received using the event scheme each time the ESG datais changed, and ESG data is received again through the action, there maybe an overlap between the ESG data. Therefore, when the action and theevent scheme are simultaneously supported, it is possible to employ apolicy in which ESG data is received using the event scheme only whensubscribing to an initial ESG service, and then ESG data is receivedusing the GetESGData( ) action periodically or when the ESG applicationis executed.

First, in the present embodiment, it is presumed that the two devicesare previously paired. In addition, it is presumed that the companiondevice subscribes to the above-described ESG service.

In t58010, the receiver may have ESG data. The ESG data may be stored inthe ESGData state variable. In t58020, the user may take a particularaction of executing the ESG application, etc. The particular action maybe a certain action using the ESG data.

In t58030, the companion device may request the ESGData state variablefrom the receiver by performing the GetESGData( ) action. In t58040, thereceiver may output the ESGData state variable, which is an outputvariable of the GetESGData( ) action, to the companion devicesimultaneously with sending a callback of 200 OK in response to therequest.

In t58050, the companion device may parse the received ESG data, andperform an exposure operation through the ESG application using the ESGdata. When the ESG data is exposed, the companion device may immediatelyexpose the ESG data as in the above-described embodiments, or may storethe ESG data before exposing the ESG data.

The illustrated embodiment is an embodiment in which the GetESGData( )action is performed when the user performs a particular action. However,according to a given embodiment, as described above, the GetESGData( )action may be periodically performed (irrespective of a particularaction), and then the received and stored ESG data may be exposedthrough the action when the user executes the ESG application, etc. at acertain point in time.

*762

FIG. 76 is a diagram illustrating a process of delivering ESG data to acompanion device according to GetServiceIds and GetESGbyServiceIdsactions according to an embodiment of the present invention.

Only ESG data related to a certain service may be delivered to thecompanion device in order to minimize a network burden between abroadcast receiver and the companion device and/or a burden to processwhole ESG data in the companion device. To this end, a ServiceIdsListstate variable and an A_ARG_TYPE_ESGData_by_ServiceIds state variablemay be defined.

The ServiceIdsList state variable may be a state variable for deliveringIDs of services described by an ESG to the companion device. In otherwords, this state variable may include service ID information in ESGdata which is parsed and stored in the receiver. This state variable mayhave a type of a list of strings or a list of URIs. Here, a type of aURI may be ignored. According to a given embodiment, this state variablemay be expressed in CSV form. For example, this state variable may beexpressed in atsc.org/esg/service/1, atsc.org/esg/service/2, etc.

The A_ARG_TYPE_ESGData_by_ServiceIds state variable may be a statevariable for storing partial ESG data of the ESG This state variable maybe defined to deliver only the partial ESG data to the companion device.This state variable may have a fragment type of Markup Language of acertain form for expressing an ESGData state variable. For example, whenthe ESGData state variable is an XML document, this state variable mayhave an XML fragment type.

The service IDs of the ESG included in the receiver may be firstdelivered to the companion device using the above-described statevariables, and only necessary ESG data requested in response to thedelivery may be delivered to the companion device. To this end, aGetServiceIds action and a GetESGbyServiceIds action may be defined.

*768

The GetServiceIds action may be an action for enabling the companiondevice to receive service IDs from the receiver. The receiver maydeliver the service IDs in a list form in information related to aservice which is described by an ESG included in the receiver. An inputvariable of this action may not be present, and an output variable ofthis action may be the ServiceIdsList state variable.

The GetServiceIds action may be performed when the user desires to viewan ESG in the companion device and executes an ESG application, etc. Inthis case, the ESG data is received as a result of the action, and thereceived ESG data may be exposed through the ESG application. Inaddition, according to a given embodiment, the GetServiceIds action maybe performed using a periodic polling scheme to store the ESG data inthe companion device, and then the stored ESG data may be exposed to theuser in response to execution of the ESG application.

The GetESGbyServiceIds action may be defined to enable the companiondevice to receive only ESG data corresponding to a certain service fromthe receiver. The companion device may sort a service ID of a desiredservice by utilizing the list of the service IDs received by theGetServiceIds action. Thereafter, this action may be performed using thelist of the service IDs as an input variable in order to receive the ESGdata of the desired service. As a result, the companion device mayreceive the ESG data related to the desired service. An input variableof this action may be the ServiceIdsList state variable, and an outputvariable of this action may be the A_ARG_TYPE_ESGData_by_ServiceIdsstate variable.

The GetESGbyServiceIds action may be performed when the user desires toview an ESG in the companion device and executes an ESG application,etc. In this case, the ESG data is received as a result of the action,and the received ESG data may be exposed through the ESG application. Inaddition, according to a given embodiment, the GetServiceIds action maybe performed using a periodic polling scheme to store the ESG data inthe companion device, and then the stored ESG data may be exposed to theuser in response to execution of the ESG application.

According to a given embodiment, when an input variable is set to “*” inthe GetESGbyServiceIds action, all ESG data may be set to be requestedirrespective of a service ID. In addition, according to a givenembodiment, when an input variable is set to “empty” in theGetESGbyServiceIds action, ESG data for a currently viewed service maybe set to be requested.

First, in the present embodiment, it is presumed that the two devicesare previously paired. In addition, it is presumed that the companiondevice subscribes to the above-described ESG service.

In t59010, the receiver may have ESG data. The ESG data may be stored inthe ESGData state variable. In t59080, the ESG data stored in theESGData state variable may be ESG data related to two servicesidentified by “atsc.org/esg/service/1” and “atsc.org/esg/service/2”. Int59020, the user may take a certain action of executing the ESGapplication, etc. The certain action may be a certain action using theESG data.

In t59030, the companion device may request a list of service IDsthrough the GetServiceIds action. In t59040, the receiver may outputServiceIdsList together with 200 OK to the companion device. In thepresent embodiment, a value of ServiceIdsList may be equal to(atsc.org/esg/service/1, atsc.org/esg/service/2).

In t59050, when a certain service desired by the user or the companiondevice is a service identified by “atsc.org/esg/service/1”, theGetESGbyServiceIds may be performed using “atsc.org/esg/service/1” as aninput variable. In t59060, the receiver may outputA_ART_TYPE_ESGData_by_ServiceIds together with 200 OK to the companiondevice. In the present embodiment, a value ofA_ART_TYPE_ESGData_by_ServiceIds may be ESG data related to a servicewhich is identified by “atsc.org/esg/service/1” in t59090. Asillustrated in the figure, not only a service element havingatsc.org/esg/service/1 as a service ID value, but also a scheduleelement having atsc.org/esg/service/1 as a reference value and a contentelement may be included in output variables. Here, the schedule elementand the content element may be schedule and content information relatedto a service identified by atsc.org/esg/service/1.

In t59070, the companion device may parse the received ESG data, andperform an exposure operation through the ESG application using the ESGdata. When the ESG data is exposed, the companion device may immediatelyexpose the ESG data as in the above-described embodiments, or may storethe ESG data before exposing the ESG data.

The illustrated embodiment corresponds to a case in which the userperforms a particular action. However, as described above, an action maybe first performed (irrespective of the particular action), and then thepreviously received and stored ESG data may be exposed through theaction when the user executes the ESG application, etc. at a certainpoint in time.

FIG. 77 is a diagram illustrating a process of delivering ESG data to acompanion device according to a GetCurrentServiceId action according toan embodiment of the present invention.

ESG data of a service currently viewed by a receiver may need to bedelivered to the companion device. To this end, a service ID of thecurrently viewed service may be delivered to the companion device. Tothis end, a CurrentServiceId state variable and the GetCurrentServiceIdaction may be defined.

The CurrentServiceId state variable may store a service ID of a servicecurrently viewed in the receiver in ESG data of the receiver. This statevariable may correspond to a string or particular URI type.

The GetCurrentServiceId action may be action for enabling the companiondevice to receive the service ID of the service currently viewed in thereceiver. An input variable of this action may not be present, and anoutput variable of this action may be the CurrentServiceId statevariable.

The GetCurrentServiceId action may be performed when the user desires toview an ESG in the companion device and executes an ESG application,etc. In this case, the ESG data is received as a result of the action,and the received ESG data may be exposed through the ESG application. Inaddition, according to a given embodiment, the GetCurrentServiceIdaction may be performed using a periodic polling scheme to store the ESGdata in the companion device, and then the stored ESG data may beexposed to the user in response to execution of the ESG application.

First, in the present embodiment, it is presumed that the two devicesare previously paired. In addition, it is presumed that the companiondevice subscribes to the above-described ESG service.

In t60010, the receiver may have ESG data. The ESG data may be stored inthe ESGData state variable. In t60090, the ESG data stored in theESGData state variable may be ESG data related to two servicesidentified by “atsc.org/esg/service/1” and “atsc.org/esg/service/2”. Thereceiver may update the CurrentServiceId state variable with the serviceID of the currently viewed service by periodically signaling a currentlyviewed broadcast. In t60030, the user may take a certain action ofexecuting the ESG application, etc. The certain action may be a certainaction using the ESG data.

In t60040, the companion device may request a list of service IDsthrough the GetCurrentServiceId action. In t60050, the receiver mayoutput the CurrentServiceId state variable together with 200 OK to thecompanion device. In the present embodiment, a value of theCurrentServiceId state variable may be equal to“atsc.org/esg/service/1”.

In t60060, the companion device may request ESG data related to thecurrently viewed service by performing a GetESGbyServiceIds action. Inthe present embodiment, an input variable of the GetESGbyServiceIdsaction may be atsc.org/esg/service/1. In t60070, the receiver may outputthe A_ART_TYPE_ESGData_by_ServiceIds state variable together with 200 OKto the companion device. In the present embodiment, a value ofA_ART_TYPE_ESGData_by_ServiceIds may be ESG data related to a servicewhich is identified by “atsc.org/esg/service/1” in t60100. Asillustrated in the figure, not only a service element havingatsc.org/esg/service/1 as a service ID value, but also a scheduleelement having atsc.org/esg/service/1 as a reference value and a contentelement may be included in output variables. Here, the schedule elementand the content element may be schedule and content information relatedto a service identified by atsc.org/esg/service/1.

In t60080, the companion device may parse the received ESG data, andperform an exposure operation through the ESG application using the ESGdata. When the ESG data is exposed, the companion device may immediatelyexpose the ESG data as in the above-described embodiments, or may storethe ESG data before exposing the ESG data.

The illustrated embodiment corresponds to a case in which the userperforms a particular action. However, as described above, an action maybe first performed (irrespective of the particular action), and then thepreviously received and stored ESG data may be exposed through theaction when the user executes the ESG application, etc. at a certainpoint in time.

FIG. 78 is a diagram illustrating a process in which ESG data isdelivered to a companion device according to a SearchESG actionaccording to an embodiment of the present invention.

In a case in which the companion device requests that a receiver deliverthe ESG data, the companion device may request that the receiver deliverthe ESG data only when a certain field of the ESG data has a particularvalue (target value). To this end, an A_ART_TYPE_SearchField statevariable, an A_ART_TYPE_TargetValue state variable, and a SearchESGaction may be defined.

The A_ART_TYPE_SearchField state variable may indicate a particularfield to be designated by the companion device. In other words, thisstate variable may be a list of names of elements/attributes of anESGData state variable. For example, values such as Service@id,Service.Genre, etc. may be stored in this state variable. This statevariable may have a list type of strings. This state variable may bereferred to as SearchField.

The A_ART_TYPE_TargetValue state variable may store a certain value ofthe certain field designated by the companion device, that is, a targetvalue. This target value may be used when the indicated certain fieldhas the target value. The ESG data of the receiver may be retrievedusing this target value. This state variable may have a list type ofstrings. This state variable may be referred to as TargetValue.

The SearchESG action may be an action for enabling the companion deviceto explore and request ESG data in the receiver. A certain field(SearchField) and/or a target value (TargetValue) may be defined as aninput variable of this action. The receiver may explore ESG data basedon whether the certain field has the target value. When the receiverexplores ESG data that satisfies all conditions, the receiver may outputall related ESG data to the companion device. When no data is matched,nothing will be output. According to a given embodiment, ESG informationmay be delivered only when a part of the ESG data is matched.

An A_ART_TYPE_ESGData state variable may be defined as the output value.This state variable may be a state variable that stores partial ESG dataof an ESG similarly to the above-describedA_ART_TYPE_ESGData_by_ServiceIds state variable. The A_ART_TYPE_ESGDatastate variable may be referred to as SearchedESGData.

The SearchESG action may be performed when the user desires to view anESG in the companion device and executes an ESG application, etc. Inthis case, the ESG data is received as a result of the action, and thereceived ESG data may be exposed through the ESG application. Inaddition, according to a given embodiment, the SearchESG action may beperformed using a periodic polling scheme to store the ESG data in thecompanion device, and then the stored ESG data may be exposed to theuser in response to execution of the ESG application.

First, in the present embodiment, it is presumed that the two devicesare previously paired. In addition, it is presumed that the companiondevice subscribes to the above-described ESG service.

In t61010, the receiver may have ESG data. The ESG data may be stored inthe ESGData state variable. In t61050, the ESG data stored in theESGData state variable may be ESG data related to a service which isidentified by “atsc.org/esg/service/1” and has a Service.Genre value ofDrama and a service which is identified by “atsc.org/esg/service/2” andhas a Service. Genre value of Sports.

In t61020, the companion device may request ESG data using the SearchESGaction. Here, an input variable of the action may be equal to(“Service@id, Service.Genre”, “atsc.org/esg/service/1, Drama”) so as toexplore ESG data in which a service ID is atsc.org/esg/service/1, and avalue of a sub-element genre of the service element is Drama.

In t61030, the receiver may explore ESG data matching the correspondingcondition, and output the ESG data together with 200 OK to the companiondevice. In the present embodiment, ESG data related to a service whichis identified by “atsc.org/esg/service/1” matching the correspondingcondition may be output.

In t61040, the companion device may parse the received ESG data, andperform an exposure operation through the ESG application using the ESGdata. When the ESG data is exposed, the companion device may immediatelyexpose the ESG data as in the above-described embodiments, or may storethe ESG data before exposing the ESG data.

FIG. 79 is a diagram illustrating an authentication process fordelivering ESG data according to a DoAuthenticationForESG actionaccording to an embodiment of the present invention.

When ESG data is exchanged between a receiver and a companion device, anunintended application, for example, an application for hacking mayrequest ESG data. To prevent this case, an authentication procedure forsecurity may be needed. To this end, a CompanionDeviceId state variable,a CompanionDeviceAppId state variable, a CompanionDeviceAppVersion statevariable, a PrimaryDeviceId state variable, and a DoAuthenticationForESGaction may be defined.

The CompanionDeviceId state variable may be a state variable for storingID information of the companion device. A unique value fordistinguishing the companion device may be stored in this statevariable. A MAC address, etc. may be used as a device ID, and this MACaddress may be encrypted for security (e.g. hashed MAC address). Thisstate variable may correspond to a string or particular URI type.

The CompanionDeviceAppId state variable may be a state variable forstoring ID information of an application that can be executed to use anESG in the companion device. Here, the application may correspond to aconcept including a native application or a browser-based application ofthe companion device. This variable may correspond to a string orparticular URI type.

The CompanionDeviceAppVersion state variable may be a state variable forstoring version information of an application that can be executed touse an ESG in the companion device. The receiver may determine whetherto provide ESG information using this version information. This statevariable may correspond to a hexBinary or integer type.

The PrimaryDeviceId state variable may correspond to a state variablefor storing device ID information of the receiver, that is, a primarydevice. The companion device may distinguish the receiver using thisstate variable. The companion device may use this state variable todetermine whether information is received from an unintended receiver ordetermine a particular receiver requesting the ESG when a plurality ofreceivers is found in a home network. This variable may correspond to astring or particular URI type.

The DoAuthenticationForESG action may be an action for performing theauthentication procedure for security before the companion devicerequests ESG data from the receiver. Whether the ESG data can beexchanged may be determined through this authentication procedure. An IDof the companion device, an application ID of the companion device,and/or application version information of the companion device may beinput as input variables and sent to the receiver. This information maybe referred to as authentication information. Upon receiving theauthentication information, the receiver may determine a companiondevice requesting the ESG data, and determine whether an application forthe ESG requests the ESG data. When the ESG data is requested from anapplication of a normal companion device, the receiver may output adevice ID of the receiver to the companion device. The companion devicemay verify whether a receiver is an object from which the companiondevice intends to request an ESG with reference to a received ID of thereceiver. After this authentication procedure ends, actual ESG data maybe received using a mechanism such as an action/eventing, etc. proposedin the present invention. An input variable of this action maycorrespond to CompanionDeviceId, CompanionDeviceAppId, andCompanionDeviceAppVersion state variables, and an output variable ofthis action may correspond to a PrimaryDeviceId state variable.

The DoAuthenticationForESG action may be performed when the user desiresto view an ESG in the companion device and executes an ESG application,etc. In addition, according to a given embodiment, theDoAuthenticationForESG action may be performed in a periodic pollingscheme to perform the authentication procedure.

First, in the present embodiment, it is presumed that the two devicesare previously paired. In addition, it is presumed that the companiondevice subscribes to the above-described ESG service.

In t62010, the receiver may have ESG data. The ESG data may be stored inthe ESGData state variable. In t62020, the user may take a particularaction of executing the ESG application, etc. The particular action maybe a certain action using the ESG data.

In t62030, the companion device may perform the DoAuthenticationForESGaction. In this way, the authentication information may be delivered tothe receiver. In t62040, the receiver may determine whether thecompanion device is authenticated using the received authenticationinformation. When the companion device is authenticated, the receivermay output a device ID of the receiver together with 200 OK to thecompanion device in t62050. In t62060, the companion device may whetherthe receiver is a receiver from which the companion device can requestthe ESG data using the received ID of the receiver.

Thereafter, in t62070 and t62080, the ESG data may be requested andreceived according to embodiments of the present invention. Thecompanion device may parse the received ESG data, and perform anexposure operation through the ESG application using the ESG data int62070. When the ESG data is exposed, the companion device mayimmediately expose the ESG data as in the above-described embodiments,or may store the ESG data before exposing the ESG data.

The illustrated embodiment corresponds to a case in which the userperforms a particular action. However, as described above, an action maybe first performed (irrespective of the particular action). Thereafter,when the user executes the ESG application, etc. at a certain point intime, the authentication procedure previously ends, and thus operationsfor delivering the ESG data may be immediately performed.

FIG. 80 is a diagram illustrating a process of delivering ESG data to acompanion device simultaneously with device authentication according toGetServiceIds and GetESGbyServiceIds actions according to anotherembodiment of the present invention.

As described in the foregoing, a separate action may be defined forauthentication. The present embodiment may allow an original object ofexisting actions to be achieved simultaneously with authentication byextending the existing actions without defining the separate action.Here, the actions to be extended may be all actions introduced in thepresent invention. In the actions to be extended, in addition to thepreviously defined input/output variables, CompanionDeviceId,CompanionDeviceAppId, CompanionDeviceAppVersion state variables may beadded as input variables, and a PrimaryDeviceId state variable may beadded as an output variable.

The present embodiment extends the GetServiceIds action and theGetESGbyServiceIds action. The present invention is not limited toextension of the actions.

The GetServiceIds action may be extended to have the CompanionDeviceId,CompanionDeviceAppId, CompanionDeviceAppVersion state variables as theinput variables and have the PrimaryDeviceId state variable as theoutput variable in addition to the existing ServiceIdsList statevariable. A receiver may receive authentication information according tothis action, and deliver IDs of services together with a device ID ofthe receiver to the companion device when the receiver determines thatthe IDs can be delivered. The companion device may determine whether thereceived service IDs can be used with reference to the received deviceID of the receiver.

The GetESGbyServiceIds action may be extended to have theCompanionDeviceAppId and CompanionDeviceAppVersion state variables inaddition to the existing ServiceIdsList state variable as inputvariables and have the PrimaryDeviceId state variable in addition to theexisting A_ART_TYPE_ESGData_by_ServiceIds state variable as outputvariables. The receiver may receive authentication information andservice IDs according to this action, and deliver ESG data of a relatedservice together with a device ID of the receiver to the companiondevice when the receiver determines that the ESG data and the device IDcan be delivered. The companion device may determine whether thereceived ESG data can be used with reference to the received device IDof the receiver.

The extended actions may be performed when the user desires to view anESG in the companion device and executes an ESG application, etc. Inthis case, the ESG data is received as a result of the action, and thereceived ESG data may be exposed through the ESG application. Inaddition, according to a given embodiment, the extended actions may beperformed using a periodic polling scheme to store the ESG data in thecompanion device, and then the stored ESG data may be exposed to theuser in response to execution of the ESG application.

First, in the present embodiment, it is presumed that the two devicesare previously paired. In addition, it is presumed that the companiondevice subscribes to the above-described ESG service.

In t63010, the receiver may have the ESG data. The ESG data may bestored in the ESGData state variable. In t63100, the ESG data stored inthe ESGData state variable may be ESG data related to two servicesidentified by “atsc.org/esg/service/1” and “atsc.org/esg/service/2”. Int63020, the user may take a particular action of executing the ESGapplication, etc. The particular action may be a certain action usingthe ESG data.

In t63030, the companion device may request a list of service IDsthrough the GetServiceIds action. In this instance, the authenticationinformation may be delivered to the receiver. In t63040, the receivermay determine whether the companion device is authenticated using theauthentication information. When the companion device is authenticated,the receiver may output ServiceIdsList together with 200 OK to thecompanion device in t63050. In the present embodiment, a value ofServiceIdsList may be equal to (atsc.org/esg/service/1,atsc.org/esg/service/2). In this instance, the device ID of the receivermay be delivered. In t63060, the companion device may whether thereceiver is a receiver from which the companion device can request theESG data using the received ID of the receiver.

In t63070, when a certain service desired by the user or the companiondevice is a service identified by “atsc.org/esg/service/1”, theGetESGbyServiceIds may be performed using “atsc.org/esg/service/1” as aninput variable. In this instance, the authentication information may bedelivered to the receiver. According to a given embodiment, thisauthentication process may be regarded as an overlapping process and beomitted. When the authentication process is omitted, the existinggeneral GetESGbyServiceIds action may be performed. When the companiondevice is authenticated, the receiver may outputA_ART_TYPE_ESGData_by_ServiceIds together with 200 OK to the companiondevice in t63080. In the present embodiment, a value ofA_ART_TYPE_ESGData_by_ServiceIds may be ESG data related to a servicewhich is identified by “atsc.org/esg/service/1” in t63110. Asillustrated in the figure, not only a service element havingatsc.org/esg/service/1 as a service ID value, but also a scheduleelement having atsc.org/esg/service/1 as a reference value and a contentelement may be included in output variables. Here, the schedule elementand the content element may be schedule and content information relatedto a service identified by atsc.org/esg/service/1.

In t63090, the companion device may parse the received ESG data, andperform an exposure operation through the ESG application using the ESGdata. When the ESG data is exposed, the companion device may immediatelyexpose the ESG data as in the above-described embodiments, or may storethe ESG data before exposing the ESG data.

The illustrated embodiment corresponds to a case in which the userperforms a particular action. However, as described above, an action maybe first performed (irrespective of the particular action), and then thepreviously received and stored ESG data may be exposed through theaction when the user executes the ESG application, etc. at a certainpoint in time.

FIG. 81 is a diagram illustrating a process of delivering ESG data to acompanion device according to a GetService action according to anembodiment of the present invention.

In a service in the ESG data, a new service may be less frequentlyupdated (added/deleted, etc.). Therefore, a continuous request forand/or delivery of ESG data related to a service may cause unnecessarynetwork overload. To solve this problem, a NumOfServices state variable,an A_ARG_TYPE_ESGData_Service state variable, and a GetService actionmay be defined. In addition, another example of the above-describedGetESGbyServiceIds action may be defined.

The NumOfServices state variable may be a state variable for storing thetotal number of services described by an ESG of a receiver. A value ofthis state variable may be referred to when a service list isconfigured. For example, a value of this state variable may be used toverify validation when the service list is configured. This statevariable may have an integer type.

The A_ARG_TYPE_ESGData_Service state variable may be a state variablefor storing only ESG data corresponding to a service element in the ESGof the receiver. This state variable may have a fragment type of MarkupLanguage in a particular form for expressing an ESGData state variable.For example, when the ESGData state variable is an XML document, thisstate variable may have an XML fragment type.

The GetService action may be an action for allowing a companion deviceto receive ESG data related to the service in ESG information from thereceiver. The companion device may receive ESG data related to aparticular service (ESG data other than service elements) using the ESGdata (service elements) received through this action. The companiondevice may compare the total number of services indicated by theNumOfServices state variable with the number of received serviceelements, and use a result of comparison when configuring a servicelist. In this process, the above-described authentication procedure maybe used. That is, the GetService action may have an extended formincluding an additional input/output variable for authentication.According to a given embodiment, a GetService action excluding anadditional variable for authentication may be used.

Examples of an input variable of this action may include the statevariables corresponding to the authentication information describedabove. Examples of an output variable thereof may include aPrimaryDeviceId state variable, a NumOfServices state variable, and anA_ARG_TYPE_ESGData_Service state variable.

In addition, another example of the above-described GetESGbyServiceIdsaction may be defined. The GetESGbyServiceIds action according to theother example may be an action for allowing the companion device toreceive other ESG data related to a particular service using service IDsof the particular service as an input. Here, the other ESG data may beESG data excluding the corresponding service element, that is, ESG datacorresponding to content and schedule elements related to the service.Similarly, this action may be defined in an extended form including theabove-described additional variables for authentication.

The GetService and GetESGbyServiceIds actions may be performed when theuser desires to view an ESG in the companion device and executes an ESGapplication, etc. In this case, the ESG data is received as a result ofthe action, and the received ESG data may be exposed through the ESGapplication. In addition, according to a given embodiment, theGetService and GetESGbyServiceIds actions may be performed using aperiodic polling scheme to store the ESG data in the companion device,and then the stored ESG data may be exposed to the user in response toexecution of the ESG application.

First, in the present embodiment, it is presumed that the two devicesare previously paired. In addition, it is presumed that the companiondevice subscribes to the above-described ESG service.

In t64010, the receiver may have ESG data. In t64100, the ESG data maybe stored in the ESGData state variable. In t59080, the ESG data storedin the ESGData state variable may be ESG data related to two servicesidentified by “atsc.org/esg/service/1” and “atsc.org/esg/service/2”. Int64020, the user may take a certain action of executing the ESGapplication, etc. The certain action may be a certain action using theESG data.

In t64030, the companion device performs the GetService action torequest ESG data related to a service. When the receiver determines thatthe companion device is an authenticated companion device and/orapplication in t64040, the receiver may output theA_ARG_TYPE_ESGData_Service state variable together with 200 OK to thecompanion device in t64050. Here, in t64110, theA_ARG_TYPE_ESGData_Service state variable may include only ESG datarelated to a service element in the ESG data of the receiver. In t64060,the companion device may determine whether the information is reliableby performing authentication using a received device ID of the receiver.

In t64070, the companion device may perform the GetESGbyServiceIdsaction to request remaining ESG data related to the particular service.In the present embodiment, a ServiceIdsList input variable value of theGetESGbyServiceIds action may be atsc.org/esg/service/1. When thereceiver determines that the companion device is an authenticatedcompanion device and/or application, the receiver may output anA_ARG_TYPE_ESGData_by_ServiceIds state variable together with 200 OK int64080. In the present embodiment, the outputA_ARG_TYPE_ESGData_by_ServiceIds state variable may be ESG data relatedto the service which is identified by atsc.org/esg/service/1 in t64120.As illustrated in the figure, a content element and a schedule elementhaving atsc.org/esg/service/1 as a reference value may be included inoutput variables. The service element which is identified byatsc.org/esg/service/1 may not be included in the output variables.

In t64090, the companion device may parse the received ESG data, andperform an exposure operation through the ESG application using the ESGdata. When the ESG data is exposed, the companion device may immediatelyexpose the ESG data as in the above-described embodiments, or may storethe ESG data before exposing the ESG data.

The illustrated embodiment corresponds to a case in which the userperforms a particular action. However, as described above, an action maybe first performed (irrespective of the particular action), and then thepreviously received and stored ESG data may be exposed through theaction when the user executes the ESG application, etc. at a certainpoint in time.

FIG. 82 is a diagram illustrating a process of changing a service of abroadcast receiver by a companion device according to a SetChangeChannelaction according to an embodiment of the present invention.

ESG information delivered to the companion device may be exposed to theuser through a UI. A service appearing in an ESG may be recognized andselected by the user. In this instance, the receiver is a device thatactually provides the service, and thus information for changing theservice needs to be delivered to the receiver to change the service. Tothis end, an A_ARG_TYPE_SelectedServiceId state variable and aSetChangeChannel action may be defined.

The A_ARG_TYPE_SelectedServiceId state variable may be a state variablefor storing a service ID of a service selected by the user through theESG in the companion device. This state variable may correspond to astring or particular URI type.

The SetChangeChannel action may be action for enabling the companiondevice to change the service provided by the receiver. An input variablemay be the A_ARG_TYPE_SelectedServiceId state variable. The user mayview the ESG through the companion device and select a certain service.In this instance, an ID of the service may be stored as an inputvariable. When the action is performed, the receiver may change achannel to a service having the service ID according to a value of theinput variable. There may be no output variable.

First, in the present embodiment, it is presumed that the two devicesare previously paired. In addition, it is presumed that the companiondevice subscribes to the above-described ESG service.

In t65010, the receiver may have ESG data. The ESG data may be stored inthe ESGData state variable. In t65030, the user may take a certainaction of executing the ESG application, etc. The certain action may bea certain action using the ESG data.

In t65040, the companion device may request the ESG data through theabove-described GetESGData action, and receive the ESG data. Theillustrated embodiment corresponds to a case in which the user performsa particular action. However, as described above, an action may be firstperformed (irrespective of the particular action), and then thepreviously received and stored ESG data may be exposed through theaction when the user executes the ESG application, etc. at a certainpoint in time.

In t65050, the companion device may parse the received ESG data, andperform an exposure operation through the ESG application using the ESGdata. When the ESG data is exposed, the companion device may immediatelyexpose the ESG data as in the above-described embodiments, or may storethe ESG data before exposing the ESG data.

In t65060, the user may select a service through the UI of the companiondevice while viewing an ESG For example, the user may have attempted achange to an NBCU channel. In t65070, the companion device may performthe SetChangeChannel. Through this action, a service ID corresponding tothe NBCU channel may be delivered to the receiver.

In t65080, the receiver may change a channel to the service using thereceived service ID. In t65090, the service may be changed to NBCU andprovided to the user.

FIG. 83 is a diagram illustrating a method of providing a broadcastservice according to an embodiment of the present invention.

A method of providing a broadcast service by a broadcast receiveraccording to an embodiment of the present invention may include paringthe broadcast receiver with a companion device and/or receiving an ESG

In t66010, a network interface unit of the broadcast receiver may bepaired with the companion device. Here, the network interface unit maycorrespond to the above-described network interface of the broadcastreceiver. A technology such as UPnP, etc. may be used for pairing.However, a technology for pairing is not limited thereto.

A receiving unit of the broadcast receiver may receive the ESG or aparticular service guide. Here, the receiving unit may correspond to theabove-described broadcast interface or network interface of thebroadcast receiver. The receiving unit may correspond to the broadcastinterface when the ESG is received through a broadcast network, and thereceiving unit may correspond to the network interface when the ESG isreceived through an IP network. In other words, according to a givenembodiment, the network interface unit and the receiving unit maycorrespond to the same block/module.

In the present embodiment, the ESG may include ESG data related to atleast one broadcast service. Here, the ESG data may refer to dataincluded in the ESG or an element/attribute in the ESG The broadcastservice may correspond to the above-described service or channel.

In a method of providing the broadcast service according to anotherembodiment of the present invention, the ESG data may correspond toservice type information, schedule information, related contentinformation, or related component information of the above-described atleast one broadcast service. The ESG data may correspond to a typeattribute of the service element described above, the schedule element,the content element, or the component element. Here, a related contentand a related component may refer to a content related to a servicedescribed by the ESG and a component related thereto.

A method of providing the broadcast service according to anotherembodiment of the present invention may further include deliveringinformation about changes of the received ESG to the companion device.This operation may be performed by the above-described network interfaceunit. Here, the information about changes may include added, modified,or deleted ESG data of the received ESG when compared to the previouslystored ESG data. Here, the information about changes may correspond tothe above-described LastChangedESGData state variable. The added,modified, and deleted ESG data may correspond to the addition,modification, and deletion elements, respectively.

A method of providing the broadcast service according to anotherembodiment of the present invention may further include delivering an IDlist of broadcast services included in the received ESG to the companiondevice, receiving a request for ESG data related to a particularbroadcast service identified by at least one ID in the ID list from thecompanion device, and delivering the requested ESG data related to theparticular broadcast service to the companion device. The service IDlist may be delivered through the above-described GetServiceIds action.The ESG data may be requested and delivered using the ID through theabove-described GetESGbyServiceIds action.

A method of providing the broadcast service according to anotherembodiment of the present invention may further include receiving arequest for an ID of a currently viewed broadcast service to deliver theID of the currently viewed broadcast service to the companion device,receiving a request for ESG data related to the currently viewedbroadcast service, and delivering the requested ESG data related to thecurrently viewed broadcast service to the companion device. The ID ofthe currently viewed broadcast service may be delivered through theabove-described GetCurrentServiceId action. The ESG data may berequested and delivered using the ID through the above-describedGetESGbyServiceIds action.

A method of providing the broadcast service according to anotherembodiment of the present invention may further include receiving asearch field that indicates a particular field of ESG data and a targetvalue for the particular field from the companion device, sorting theESG data in which the particular field indicated by the search field hasthe target value by a control unit, and delivering the sorted ESG datato the companion device. The search field and the target value for theparticular field may correspond to the above-describedA_ART_TYPE_SearchField state variable and A_ART_TYPE_TargetValue statevariable, respectively. The ESG data may be sorted and delivered throughthe above-described SearchESG action. Here, the control unit maycorrespond to the above-described control unit of the main physicaldevice of the broadcast servicer.

A method of providing the broadcast service according to anotherembodiment of the present invention may further include receivingauthentication information of the companion device including device IDinformation of the companion device from the companion device, verifyingwhether the companion device is authenticated using the authenticationinformation by an authentication module, and delivering device IDinformation of the broadcast receiver to the companion device whenauthentication of the companion device is confirmed. Here, theauthentication information may correspond to the above-describedCompanionDeviceId, CompanionDeviceAppId and/or CompanionDeviceAppVersionstate variables. A device ID of the broadcast receiver may correspond tothe above-described PrimaryDeviceId state variable. Operations ofdelivering the authentication information, verifying authentication,delivering the device ID, etc. may be performed through theabove-described DoAuthenticationForESG action. Here, the authenticationmodule may be a block/module positioned inside/outside the broadcastreceiver to perform an operation related to authentication describedabove. According to a given embodiment, the authentication module may bemerged with the above-described control unit or network interface.

A method of providing the broadcast service according to anotherembodiment of the present invention may further include delivering an IDlist to the companion device, receiving a request for an ID listincluding authentication information of the companion device from thecompanion device, verifying whether the companion device isauthenticated using the authentication information by an authenticationmodule, and delivering the ID list and device ID information of thebroadcast receiver to the companion device when authentication of thecompanion device is confirmed. This embodiment may correspond to a casein which the GetServiceIds action is extended such that authenticationcan be performed in the above-described embodiment of delivering the ESGthrough the service ID list.

A method of providing the broadcast service according to anotherembodiment of the present invention may further include receiving, fromthe companion device, a request for change of the currently viewedbroadcast service based on the delivered ESG data, and changing theviewed broadcast service in the broadcast receiver by the control unitin response to the request for change of the broadcast service. Therequest for change may be received and the service may be changed basedon the request through the above-described SetChangeChannel action.

The above-described method of providing the broadcast service may bedescribed from the point of view of the companion device. The presentinvention includes a case in which the above-described embodiments areperformed from the point of view of the companion device. For example,the companion device may receive information about changes of the ESG,request an ID list of services, and receive related ESG data using an IDof the ID list. In addition, the companion device may request an ID of acurrently viewed service, and receive related ESG data using the ID. Thecompanion device may deliver a search field that indicates a particularfield and a particular value to the receiver to receive matching ESGdata, and transmit authentication information to the receiver to performauthentication. In addition, the companion device may request a changeof the currently viewed service. Communication with the receiver may beperformed by the above-described network interface inside/outside thecompanion device. Overall operation such as an operation related to thesearch field, an operation related to the request for the change of theservice, a processing operation related to the ESG data, etc. may beperformed by the above-described control unit inside/outside thecompanion device. Further, the companion device may include anauthentication module for performing an authentication-relatedoperation.

The above-described respective steps may be omitted or replaced by othersteps for performing the same or similar operations.

FIG. 84 is a diagram illustrating a broadcast receiver according to anembodiment of the present invention.

The broadcast receiver according to the present embodiment may include anetwork interface unit and/or a receiving unit. A broadcast receiveraccording to another embodiment of the present invention may furtherinclude a control unit and/or an authentication module. The respectiveblocks, modules, and units have been described above.

The broadcast receiver and the modules/blocks/units inside the broadcastreceiver according to the present embodiment may perform theabove-described embodiments of the method of providing the broadcastservice by the broadcast receiver.

A companion device according to an embodiment of the present inventionmay include a network interface unit and/or a receiving unit. Acompanion device according to another embodiment of the presentinvention may further include a control unit and/or an authenticationmodule. The respective blocks, modules, and units have been describedabove.

The companion device and the modules/blocks/units inside the companiondevice according to the present embodiment may perform theabove-described embodiments of the method of providing the broadcastservice by the companion device.

The above-described modules/blocks/units, etc. inside the broadcastreceiver and the companion device may correspond to processors forexecuting continuous processes stored in a memory, and may correspond tohardware elements positioned inside/outside the device according to agiven embodiment.

The above-described respective modules/blocks/units may be omitted orreplaced by other modules/blocks/units for performing the same orsimilar operations.

FIG. 85 is a diagram illustrating a UPnP-based PD-CD architectureaccording to an embodiment of the present invention.

The main physical device may correspond to a TV receiver (a broadcastreceiver, PD). The companion physical device may correspond to theaforementioned companion device (CD). These two devices are physicaldevices and may refer to PD and CD in a physical sense.

In this embodiment, the main physical device may include a main device.Herein, the main device may correspond to a controlled device defined inUPnP. For simplicity, the main device will be referred to as acontrolled device in the following description.

In this embodiment, the companion physical device may include a maincontrol point. Herein, the main control point may correspond to acontrol point defined in UPnP. The main control point may refer to acontrol point communicating with the main controlled device.

The controlled device may usually be positioned at the TV receiver inthe UPnP architecture to perform various operations. If the TV receiverjoins a whole network, the controlled device may multicast anAdvertisement message or deliver description of a UPnP service providedfrom the PD to the control point. In addition, the controlled device maydeliver the value of a state variable to the control point according tothe Event scheme, or may deliver information to the control point whenthe control point requests a specific operation according to an Actionscheme. PDs such as the TV receiver may be referred to as controlleddevices.

The controlled device may provide an application management serviceand/or a connection establishment service, which may be one of UPnPservices provided by the controlled device. The application managementservice may refer to services related to management of applicationswhich are running on the controlled device and the control point. Theseservices may include app-to-app communication and delivery of specificinformation to an application. In the illustrated embodiment, the PDapps (App#1 and App#2) and the CD apps (App#1 and App#3) may performoperations such as communication with each other through these services.

The connection establishment service may be a service related toestablishment and management of connection between the controlled deviceand the control point. The discovery procedure between the controlleddevice and the control point may conform to the discovery proceduredefined in UPnP.

Once the PD joins a home network, the PD may multicast a discoverymessage for advertising the PD. If the CD joins the network later, theCD may multicast, to any PDs, a search message (unicast message). A PDthat receives this search message, can unicast to the CD a responsemessage. These advertising messages and the search messages can be sentback and forth no matter which devices (PD, CD) join the home networkfirst, and when the devices join it. Also these messages can be sentperiodically.

Upon receiving the discovery message or the search message from the PD,the CD may send a HTTP get request message to request information about,for example, a UPnP service provided by the PD. The PD may deliverdescription information about the services to the CD in response to theHTTP get message. Then, the CD may subscribe to a service of the PD. TheCD may obtain desired information using an Action, send information, orwill receive information using the Event scheme.

According to an embodiment, the main device and the main control pointmay be referred to as a screen device and a screen control point,respectively.

FIG. 86 is a diagram illustrating a UPnP-based PD-CD architectureaccording to an embodiment of the present invention.

In this embodiment, the main physical device (PD) may include a maincontrolled device and/or a companion control point. In addition, thecompanion physical device (CD) may include a main control point and/or acompanion controlled device.

In general, for the UPnP architecture, the operation or function of thecontrolled device is asymmetrical to that of the control point. That is,an operation which the controlled device is capable of performing maynot be possible with the control point.

To address this issue, the companion physical device (CD) may have acompanion controlled device, which is similar to the case of thephysical device (PD) having a main controlled device. The main physicaldevice may have a companion control point corresponding to thecontrolled device thereof, and the companion physical device may have amain control point corresponding to the controlled device thereof. Themain controlled device may communicate with the main control point, andthe companion controlled device may communicate with the companioncontrol point.

The companion controlled device and the companion control point may alsoexchange a discovery message and perform an operation such as anevent/action. Thereby, the CD may also actively perform communication.However, the companion controlled device and the companion control pointmay differ from the main controlled device/control point in terms ofoperation, function and authority. Details of the operation and thescope of authority may depend on the designer.

According to an embodiment, the companion controlled device and thecompanion control point may be respectively referred to as a screen(controlled) device and a screen control point.

FIG. 87 is a diagram illustrating a UPnP-based PD-CD architectureaccording to another embodiment of the present invention.

In this embodiment, the main physical device (PD) may include a maincontrolled device and/or a main control point. In addition, thecompanion physical device (CD) may include a main control point and/or amain controlled device.

As described above, the PD and the CD may perform asymmetric functionsregarding operations thereof. To address this issue, the architecturemay be configured such that the PD has a main control point in additionto the main controlled device, and the CD has a main controlled devicein addition to the main control point. In this case, in contrast withthe previous embodiment in which the companion controlled device/controlpoint performs a function different from that of the main controlleddevice/control point, both the PD and the CD may have an equivalent maincontrolled device/control point. Thereby, the architecture may beconfigured such that the TV receiver and the companion physical deviceare given equal status in communicating with each other.

FIG. 88 illustrates interaction diagrams of a UPnP-based PD-CDarchitecture according to an embodiment of the present invention.

The illustrated diagrams show examples of the aforementioned UPnP-basedPD-CD architecture. In the first example t408010, the aforementioned PDhas a controlled device, and the CD has a control point. In the secondexample t408020, the PD has a main controlled device and a companioncontrol point, and the CD has a main control point and a companioncontrolled device. In the third example t408030, the PD has a maincontrolled device and a main control point, and the CD has a maincontrol point and a main controlled device.

In the first example t408010, the controlled device may deliverinformation such as state variables to the control point through UPnPeventing. At the same time, the control point may make a request to thecontrolled device for information or a specific operation through a UPnPaction. This example may corresponds to the most basic architecture.

In the second example t408020, the main controlled device maycommunicate with the main control point, and the companion controlleddevice may communicate with the companion control point. The maincontrolled device may deliver information such as state variables to themain control point through UPnP eventing. At the same time, the maincontrol point may make a request for information or a specific operationto the main controlled device through a UPnP action. In addition, thecompanion controlled device may deliver information such as statevariables to the companion control point through UPnP eventing. At thesame time, the companion control point may make a request forinformation or a specific operation to the companion controlled devicethrough a UPnP action. As described above, the companion controlleddevice and the companion control point may differ from the maincontrolled device/control point in terms of operation, function andauthority.

In the third example t408030, the main controlled devices of the PD andthe CD may respectively communicate with the corresponding main controlpoints. The main controlled device may deliver information such as statevariables to the main control point through UPnP eventing. At the sametime, the main control point may make a request for information or aspecific operation to the main controlled device through a UPnP action.Thereby, app-to-app communication may be performed.

FIG. 89 is a diagram illustrating a Websocket-based PD-CD architectureaccording to an embodiment of the present invention.

In the Websocket-based architecture, communication may be performedbetween apps which are being executed in the PD and the CD. TheWebsocket-based architecture, the PD may include a Websocket server, andthe CD may include respective apps. Herein, the CD apps may be referredto as Websocket clients.

The Websocket server in the PD may have endpoints for respectiveoperation/functions provided by the PD. The endpoints may be connectedto CD apps to deliver ESG deliver a media timeline, and enablecommunication between the apps of the PD and the CD.

First, a discovery procedure may be performed between the apps which arebeing executed in the PD and the CD. The discovery procedure will bedescribed later. In this procedure, information about the endpoints ofthe Websocket server may be delivered to a CD app.

For each and point, a CD app and the Websocket server of the PD mayperform a handshake procedure. If the CD app requests initiation of thehandshake, the Websocket server may send a response to the request.Thereby, the Websocket server and CD app may be connected through anendpoint.

In the Websocket architecture, once the Websocket server and the CD appare connected through an endpoint, information may be exchanged throughthe endpoint. Messages may be relayed between the apps of the PD and theCD without restriction in a 2-way manner.

Thereafter, when disconnection is needed, the CD app may requestdisconnection of the endpoint (Disconnect Request). The Websocket servermay respond to the request (Disconnect Response), and connection to theendpoint may be terminated. Termination of the connection may beperformed by the PD, or may be automatically performed in varioussituations.

The aforementioned procedure may be a procedure of interaction with theWebsocket endpoint. When a plurality of endpoints is present, theaforementioned procedure may be independently performed for each of theendpoints to activate necessary endpoints. This procedure may beperformed simultaneously or sequentially for the endpoints.

In this embodiment, the Websocket server may have an endpoint for eachprovided function. That is, one endpoint may be provided for onefunction.

The endpoints may include a Service/Content Identification Endpoint, anESG Information Endpoint, a Service/Show/Segment Data Endpoint, a MediaTimeline Endpoint, a Media Playback State Endpoint, an EAS Endpointand/or an ApptoApp Endpoint.

The Service/Content Identification Endpoint may be an endpointfunctioning to deliver information for identifying a service/contentwhich is currently being reproduced or is to be reproduced in the PD.The CD app may receive the information through this endpoint.

The ESG Information Endpoint may be an endpoint used for the CD toreceive the ESG The CD app may receive information through thisendpoint. The Service/Show/Segment Data Endpoint may be an endpoint forreceiving various kinds of delivered data for services.

The Media Timeline Endpoint may be an endpoint for delivering a currenttime and media information about a service/content which is currentlybeing reproduced. The aforementioned service type information may bedelivered through this endpoint. The Media Playback State Endpoint maybe an endpoint for delivering reproduction-related information about aservice/content which is currently being reproduced. Thereproduction-related information may indicate whether theservice/content is being reproduced at a normal speed, fast-forwarded ata speed three times higher than the normal speed, or rewound. Theaforementioned playback state information may be delivered to the CD appthrough this endpoint.

The EAS Endpoint may be an endpoint for delivering EAS information tothe CD. If the TV receiver receives the EAS information, the receivermay relay this information to the CD to more efficiently announce adangerous situation. The ApptoApp Endpoint may be an endpoint forauthentication between apps which are being executed in the PD and theCD. Using this endpoint, a PD app and a CD app may exchange informationby exchanging messages in a 2-way manner.

Since each function is provided with an endpoint, the CD app may accesseach endpoint and perform a connection procedure to obtain desiredinformation or communicate with a PD app through the endpoint.

Hereinafter, the aforementioned architecture will be referred to as aWebsocket-based architecture example #1 for simplicity. This example maybe combined with various examples of other Websocket-basedarchitectures, the UPnP-based architecture and the HTTP-basedarchitecture.

FIG. 90 is a diagram illustrating a Websocket-based PD-CD architectureaccording to an embodiment of the present invention.

In the illustrated embodiment, an endpoint may not be provided for eachfunction in contrast with the previous embodiment. In this embodiment,the Websocket server of the PD may provide one endpoint, and thisendpoint may perform all of the aforementioned functions. This endpointmay be referred to as a companion endpoint. Other details ofconfiguration of the Websocket architecture may be the same as those inthe previous embodiment.

This endpoint may perform all the functions illustrated as beingperformed by multiple endpoints in the previous embodiment. That is,this endpoint may perform all the functions of the endpoints includingthe aforementioned Service/Content Identification Endpoint, ESGInformation Endpoint, and Service/Show/Segment Data Endpoint.Accordingly, the CD app may be allowed to receive the ESG or mediaTimeline information or perform all operations including communicationwith a PD app only if the app is connected to this endpoint. In thiscase, however, the function for which a message exchanged between thisCD app and the Websocket server is intended needs to be identified, andaccordingly the message may include more detailed information or befurther extended.

Since this companion endpoint performs all the functions, the functionsmay be performed upon establishment of connection to this endpoint. Theprocedure of connection to this endpoint may be the same as theprocedure of connection to a normal endpoint as described above. In thiscase, since one endpoint is provided, connection to the endpoint cannotbe partially terminated even if access to any one of the functions isunnecessary. In addition, if any one of the functions is necessary,connection to this companion endpoint may need to be established.

Hereinafter, the aforementioned architecture will be referred to asWebsocket-based architecture example #2 for simplicity of description.This example may be combined with various examples of otherWebsocket-based architectures, the UPnP-based architecture and theHTTP-based architecture.

FIG. 91 is a diagram illustrating a Websocket-based PD-CD architectureaccording to an embodiment of the present invention.

In the illustrated embodiment, n endpoints are provided, and may performm functions in total. Herein, n may be less than or equal to m, and bothn and m may be integers. That is, in this case, a plurality (n) ofendpoints each of which may perform one or more functions may beprovided.

In this embodiment, an endpoint performing the functions ofservice/content identification and ESG delivery may be provided as acompanion endpoint, and an endpoint performing the App to App functionmay be provided as a separate “ApptoApp endpoint”.

The architecture of this embodiment may be a combination ofWebsocket-based architectures #1 and #2. Various architectures may beconfigured according to the values of n and m. The number of providedendpoints may vary and each endpoint may provide a different number offunctions.

The procedure of connection to and disconnection from the aforementionedendpoints may need to be performed for each of the endpoints. That is,when n endpoints are provided, this procedure may need to be performed ntimes.

Hereinafter, this architecture will be referred to as Websocket-basedarchitecture example #3 for simplicity of description. This example maybe combined with various examples of other Websocket-basedarchitectures, the UPnP-based architecture and the HTTP-basedarchitecture.

FIG. 92 is a diagram illustrating app-to-app communication in aWebsocket-based PD-CD architecture according to an embodiment of thepresent invention.

App-to-app communication may be performed between an app which is beingexecuted in the PD and an app which is being executed in the CD. In theWebsocket-based architecture, the apps may communicate with each othervia the Websocket server. In this case, the aforementioned ApptoAppEndpoint may be used. Alternatively, according to an embodiment, acompanion endpoint for performing app-to-app communication and otherfunctions in parallel may be used.

The CD app may be connected to the App-to-App communication endpoint ofthe Websocket server through the aforementioned procedure. Apps whichare being executed in the PD correspond to Websocket clients and may beconnected to the App-to-App communication endpoint of the Websocketserver. When the Websocket server receives matching connection requestsfrom both sides, the Websocket server may connect the CD and the PD suchthat the CD and the PD can exchange a message.

Once the apps of the CD and the PD are connected to each other, they mayexchange a message via the Websocket server. This message may bedelivered in a 2-way manner. The Websocket server may relay the messagefrom one side to an app on the other side.

FIG. 93 is a diagram illustrating an HTTP-based PD-CD architectureaccording to an embodiment of the present invention.

In the HTTP-based architecture, communication may be performed betweenapps which are being executed in the PD and the CD. In the HTTP-basedarchitecture, the PD may include an HTTP server, and the CD may includeapps. Herein, the apps in the CD may be referred to as HTTP clients.

The HTTP server in the PD may perform various operations/functions. Toaccess the functions of the server, service URLs for correspondingservices may be needed. A CD app may receive desired information bysending a request to a corresponding service URL.

First, a discovery procedure may be performed between the apps which arebeing executed in the PD and the CD. In this procedure, informationabout URLs of the HTTP server may be delivered to the CD app. The HTTPclients of the CD may receive information needed to access acorresponding URL using the received URL information.

In this embodiment, the HTTP server may have different URLs forrespective functions. That is, each function may be provided with oneURL.

The services provided through these service URLs may be similar to thefunctions provided by the aforementioned Websocket server. For example,if a CD app accesses a service/content identification service URL, theCD app may receive information for identifying a service/content whichis currently being reproduced or is to be reproduced in the PD. That is,the CD app may send a request for service/content identificationinformation to the service/content identification service URL, and theHTTP server of the PD may relay the requested information to the CD app.An ESG information service, a media timeline service and the likeidentical to the functions provided by the aforementioned ESGInformation Endpoint, Media Timeline Endpoint and the like may bedefined. The CD app may receive desired information by sending a requestto respective service URLs.

Since service URLs are provided for respective services, the CD app mayrecognize respective URL information and may obtain desired informationor communicate with a PD app only when the CD app accesses acorresponding URL.

Hereinafter, the aforementioned architecture will be referred to asHTTP-based architecture example #1 for simplicity of description. Thisexample may be combined with various examples of other HTTP-basedarchitectures, the UPnP-based architecture and the Websocket-basedarchitecture.

FIG. 94 is a diagram illustrating an HTTP-based PD-CD architectureaccording to another embodiment of present invention.

In the illustrated embodiment, each service may not be provided with aservice URL in contrast with the previous embodiment. In thisembodiment, the HTTP server of the PD may provide one service URL, andthe provided service URL may perform all of the aforementionedfunctions. The service URL may be referred to as a companion serviceURL. Other details of configuration of the HTTP architecture may be thesame as those of the previous embodiment.

This service URL may perform all the functions illustrated as beingperformed by multiple service URLs in the previous embodiment. That is,the service URL may perform all the functions performed by theaforementioned service URLs including the service-backspace/contentidentification service URL, the ESG information service URL and theservice/show/segment data service URL. Accordingly, the CD app mayreceive the ESG or media time information simply by sending a request tothe service URL.

In this case, when the request is sent to the HTTP server, the requestmessage may be extended in such a manner that a new variable is added tothe query term. This is because it is necessary to identify informationfor which the request is sent to the companion service URL. The HTTPserver may analyze the request and deliver desired information to the CDapp.

Hereinafter, the aforementioned architecture will be referred to asHTTP-based architecture example #2 for simplicity of description. Thisexample may be combined with various examples of other HTTP-basedarchitectures, the UPnP-based architecture and the Websocket-basedarchitecture.

FIG. 95 is a diagram illustrating a Websocket & HTTP-based PD-CDarchitecture according to an embodiment of the present invention.

The UPnP-based architecture, the Websocket-based architecture and theHTTP-based architecture described above may be combined with each other.For example, the PD may have an HTTP server and a Websocket servertogether. According to an embodiment, while the PD has the HTTP serverand the Websocket server, the PD may also perform the function of acontrolled device on the UPnP architecture.

In addition, the combined UPnP architecture may be one of the first,second and third examples of the aforementioned UPnP architecture. Thecombined Websocket architecture may be one of Websocket-basedarchitectures #1, #2 and #3, and the HTTP architecture may be one ofHTTP-based architectures #1 and #2.

In this embodiment, the PD may have an HTTP server and a Websocketserver together, HTTP-based architecture #2 may be used as the HTTParchitecture, and Websocket-based architecture #3 may be used as theWebsocket architecture. That is, in the HTTP server, one service URLaddress may perform a plurality of functions. The Websocket server mayprovide n endpoints, and the n endpoints may perform a plurality offunctions. Specifically, in this embodiment, two endpoints may beprovided: one of the endpoints may serve as an endpoint for app-to-appcommunication, and the other endpoint may serve as an endpointperforming all the other functions.

While only the aforementioned embodiments are provided in thisspecification, all the combinations thereof are also within the scope ofthe present invention. Various architectures may be designed accordingto these combinations, and may be selected and used by the designer.

In the architecture of this embodiment, the respective functions may bedistributed to the HTTP server and the Websocket server. That is, theHTTP server may be used to perform specific functions, and thus a singleservice URL of the HTTP may be used to receive a request forimplementation of these functions. In addition, the Websocket server mayprovide endpoints for performing the other functions.

Distribution of the functions may be performed according tocharacteristics of the functions. HTTP may be used for asynchronouscommunication, while Websocket may be used for synchronouscommunication.

According to an embodiment, the functions of ESG information deliveryand service/show/segment delivery may be performed by HTTP. That is, bysending a request to a service URL of the HTTP server, information suchas the ESG or service data may be acquired.

In addition, the functions of service/content identification, mediaplayback state and app-to-app communication may be performed by theWebsocket. The Websocket server may provide a companion endpoint capableof performing the functions of service/content identification and mediaplayback state and an ApptoApp endpoint capable of performing thefunction of app-to-app communication.

According to an embodiment, the media timeline function may be performedby HTTP and/or Websocket. The function may be provided by one of HTTPand Websocket or both. The function of EAS information delivery may beperformed through the Websocket or by a multicast sender in the PD. Whenthe multicast sender is used, the multicast sender in the PD maymulticast the EAS information to the devices in the multicast group.

FIG. 96 is a diagram illustrating formats of messages used for discoveryof a Primary Device (PD).

The PD may have an ST (Search Target) value to identify a technicalstandard to which the PD conforms. For example, the PD may use a valueof urn:atsc:device:atsccompanion:3 or urn:atsc:service:atsccompanion:3as the device type or service type thereof. These values may be usedthrough ST matching in the discovery procedure.

The PD may advertise itself to CDs on behalf of the discovery procedure.Alternatively, the CD may discover the PD through the search operation.

When the PD advertises itself to the CDs, the PD may multicast adiscovery message. The discovery message may be transmitted using aNOTIFY method. The discovery message for advertising the PD may beconfigured as in the illustrated example t413020.

If the CD discovers a PD through the search operation, the CD or an appwhich is being executed in the CD may multicast a discovery message. Thediscovery message may be transmitted using an M-SEARCH method. Thediscovery message for the search operation of the CD may be configuredas in the illustrated example t413020.

Using the aforementioned ST value, a CD app may discover PDs conformingto a specific technical standard. A PD may receive a search messagedescribed above. If the ST value of the PD matches the ST value in themessage, the PD may send a response to the CD app that has sent thesearch message (200 OK). This response message may be configured as inthe illustrated example t413030.

The illustrated message formats are simply an embodiment of the presentinvention, and variables contained in the message may have differentvalues according to embodiments.

The illustrated discovery procedure is applicable not only to theWebsocket architecture but also to the HTTP architecture.

FIG. 97 is a diagram illustrating the discovery procedure of a Websocketendpoint or an HTTP service URL using a Device Description Document(DDD).

As described above, the PD may multicast a discovery message foradvertising itself or transmit a response message for the receivedM-SEARCH message to the CD. The CD app may obtain a URL from theLOCATION header of the multicast discovery message or a response messagefor the M-SEARCH message. This URL is capable of acquiring a DeviceDescription Document (DDD). A CD app may acquire the DDD using the URL,thereby obtaining device description information and the like.

As described above, the PD may multicast a discovery message foradvertising itself using the NOTIFY method. In this operation, URLinformation for acquiring the DDD may be delivered to an app which isbeing executed in the CD. Alternatively, if the CD app multicasts adiscovery message for the search operation using the M-SEARCH method,the PD may send a response message to the CD in response. In thisoperation, the URL information for acquiring the DDD may be delivered tothe CD app (t417010).

Thereafter, the CD app may send a request for the DDD to the acquiredURL using HTTP GET. The PD may deliver the DDD to the CD app through anHTTP response message (t417020). The DDD may be included in the body ofthis response message.

The addresses of Websocket endpoints may be provided to the CD appthrough the DDD. According to an embodiment, the addresses of serviceURLs of the HTTP architecture may be provided to the CD app through theDDD. When an architecture in the form of a combination of two or moreprotocols is used, the addresses of Websocket endpoints and/or theaddresses of service URLs of HTTP may be provided to the CD app throughthe DDD.

FIG. 98 illustrates a DDD request message and a DDD format in thediscovery procedure of a Websocket endpoint or an HTTP service URL usingthe DDD according to an embodiment of the present invention.

As described above, a CD app may request a DDD using HTTP GET. In thiscase, the GET message may be configured as in the illustrated examplet418010. The DDD request message using GET may be transmitted to the URLof the DDD acquired from the PD. In addition, host information of the IPaddress/port of the description may be used. In addition, a languagepreferred by a control point may be used.

As described above, a resource message for the DDD request message maybe returned. The DDD may be included in the body of the responsemessage. The typical format of the DDD may be configured as in theillustrated example t418020.

The DDD may include specification version information, base URLinformation, device-related information and the like. The specificationversion information (specVersion) may represent the version of thecorresponding DDD specification in the form of a major/minor version.The base URL information may include base URL information which isusable for all related URLs delivered by the DDD.

The device-related information may include time information about thedevice described by the DDD, short device name information(friendlyName) which is readable by the user, manufacturer information(manufacturer) about the device, and service list information.

The service list information may include service time informationindicating the type of a service provided by the device, service IDinformation indicating the ID of the service, service description URLinformation indicating a new URL related to a service description,control URL information used to control the service and/or URLinformation which is usable for eventing of the service.

The illustrated formats are simply an embodiment of the presentinvention, and the structure thereof, elements included therein and thevalues of the elements may vary according to embodiments.

FIG. 99 illustrates the format of a DDD in the discovery procedure for aWebsocket endpoint or an HTTP service URL using the DDD according to anembodiment of the present invention.

As described above, the addresses of Websocket endpoints or addresses ofHTTP service URLs may be delivered to a CD app through the DDD. The CDapp may connect to a Websocket endpoint using these addresses or send arequest to a service URL.

In the aforementioned Websocket-based architecture example #1, a DDDformat according to the illustrated example t419010 or a DDD formataccording to the example t419020 may be used.

In the illustrated example t419010, the device information of the DDDmay include address information about various Websocket endpoints inaddition to the device type information. As shown in the figure, addressinformation about endpoints such as the Service/Content IdentificationEndpoint and the ESG Information Endpoint is included in the deviceinformation of the DDD. Since the DDD format is used for Websocket-basedarchitecture example #1, addresses of the respective endpoints may belisted. The DDD format according to the illustrated example t419020 mayalso include address information about various Websocket endpoints. Inthis case, the address information about the endpoints may be includedin the service information of the DDD.

While the address information is illustrated as being included in thedevice information or service information, the address information maybe included in other positions in the DDD. In the illustrated example ofthe DDD, other elements of the aforementioned DDD are omitted.Configuration of other elements may vary according to embodiments.

The DDD formats according to the illustrated examples t419010 andt419020 may also be used for the aforementioned HTTP-based architectureexample #1. In this case, the address information about the Websocketendpoints may be replaced by URL address information about correspondingservice URLs. Thereby, element names may be changed. Similarly, as theDDD format is used for the HTTP-based architecture example #1, addressesof respective service URLs may be listed.

The address of a Websocket endpoint may be configured in the form of,for example, ws://localhost:8030/ESGInformation,ws://localhost:8030/Data, and ws://localhost:8030/MediaTimeline. Theaddress of an HTTP service URL may be configured in the form of, forexample, http://192.168.1.4:8080/serviceidentification andhttp://localhost:8030/ESGInformation.

FIG. 100 illustrates the format of a DDD in the discovery procedure of aWebsocket endpoint or an HTTP service URL using the DDD according toanother embodiment of the present invention.

In the aforementioned Websocket-based architecture example #2, a DDDformat according to the illustrated example t420010 or a DDD formataccording to example t420020 may be used.

In the illustrated example t420010, the device information about the DDDmay include the address of a Websocket endpoint in addition to thedevice type information. Since the DDD format of this example is usedfor Websocket-based architecture example #2, address information aboutonly one companion endpoint may be included. The DDD format according tothe illustrated example t420020 may also include address informationabout one companion endpoint. In this case, the address informationabout the endpoint may be included in the service information of theDDD.

The DDD formats according to the illustrated examples t420010 andt420020 may also be used for the aforementioned HTTP-based architectureexample #2. In this case, the address information about the Websocketcompanion endpoint may be replaced by address information about acompanion service URL. Thereby, element names may be changed. Similarly,as the DDD format is used for the HTTP-based architecture example #2,address information about one service URL may be included.

In the aforementioned Websocket-based architecture example #3, a DDDformat according to the illustrated example t420030 or a DDD formataccording to the example t420040 may be used.

In the illustrated example t420030, the device information of the DDDmay include address information about n provided Websocket endpoints inaddition to the device type information. For example, addressinformation about an endpoint performing functions such asService/Content identification and the ESG information delivery andaddress information about an ApptoApp communication endpoint may beincluded in the device information. The DDD format according to theillustrated example t420040 may also include address information about nWebsocket endpoints. In this case, the address information about theendpoints may be included in the service information of the DDD.

While the address information is illustrated as being included in thedevice information or service information in this embodiment, theaddress information may be included in other positions in the DDD. Inthe illustrated example of the DDD, other elements of the aforementionedDDD are omitted. Configuration of other elements may vary according toembodiments.

FIG. 101 illustrates a discovery procedure for a Websocket endpoint oran HTTP service URL using a response header for a DDD request accordingto an embodiment of the present invention.

As described above, the PD may multicast a discovery message foradvertising itself, or transmit, to the CD, a response message inresponse to the received M-SEARCH message. A CD app may obtain a URLfrom the LOCATION header of the multicast discovery message or theresponse message for the M-SEARCH message. This procedure t421010 may bethe same as that of the previous embodiment.

This URL is capable of acquiring a DDD. The CD app may send a messagefor requesting a DDD to the URL using HTTP GET. The DDD may be deliveredthrough the body of a response message corresponding to the requestmessage, and thus the CD app may obtain device description information(t421020).

In the previous embodiment, the address of a Websocket endpoint or theaddress information about an HTTP service URL is delivered through theDDD of this response message. In this embodiment, corresponding addressinformation may be delivered through the header of the response message.In this case, the body of the response message may remain empty and thuscarry no information, or may include the DDD.

FIG. 102 illustrates the format of a response header in a discoveryprocedure of a Websocket endpoint or an HTTP service URL using aresponse header for a DDD request according to another embodiment of thepresent invention.

As described above, a CD app may request a DDD using HTTP GET. In thiscase, the GET message may be configured as in the illustrated examplet422010. The DDD request message using GET may be transmitted to the URLof the DDD acquired from the PD. In addition, host information about theIP address/port of the description may be used. In addition, a languagepreferred by a control point may be used. This GET message may be thesame as the message according to the previous embodiment.

As described above, a response message for the DDD request message maybe returned. Address information may be delivered through the header ofthe response message.

In the aforementioned Websocket-based architecture example #1, aresponse header format according to the illustrated example t422020 maybe used. The response header of this example may include addressinformation about various Websocket endpoints in addition to theinformation of the basic 200 OK message. As shown in the figure, addressinformation about endpoints such as the Service/Content IdentificationEndpoint and the ESG Information Endpoint may be included in theresponse header. As the response header format is used forWebsocket-based architecture example #1, addresses of the respectiveendpoints may be listed. Herein, the structure and form of the responseheader including the address information may vary according toembodiments.

The response header format according to the illustrated example t422020may also be used for HTTP-based architecture example #1 described above.In this case, the address information about the respective Websocketendpoints may be replaced by URL address information about correspondingservice URLs. Thereby, element names may be changed. Similarly, as theresponse header format is used for the HTTP-based architecture example#1, addresses of respective service URLs may be listed.

In the aforementioned Websocket-based architecture example #2, aresponse header format according to the illustrated example t422030 maybe used. The response header of this example may include addressinformation about a Websocket endpoint in addition to the information ofthe basic 200 OK message. Since the response header format is used forWebsocket-based architecture example #2, address information about onlyone companion endpoint may be included. Herein, the structure and formof the response header including the address information may varyaccording to embodiments.

The response header format according to the illustrated example t422030may also be used for HTTP-based architecture example #2 described above.In this case, the address information about the Websocket companionendpoint may be replaced by address information about a companionservice URL. Thereby, element names may be changed. Similarly, as theresponse header format is used for the HTTP-based architecture example#2, only address information about the companion service URL may beincluded.

In the aforementioned Websocket-based architecture example #3, aresponse header format according to the illustrated example t422040 maybe used. The response header of this example may include addressinformation about n Websocket endpoints in addition to the informationof the basic 200 OK message. For example, address information about acompanion endpoint performing functions such as Service/Contentidentification and ESG information delivery and address informationabout an ApptoApp communication endpoint may be included in the responseheader. Herein, the structure and form of the response header includingthe address information may vary according to embodiments.

FIG. 103 illustrates a discovery procedure of a Websocket endpoint or anHTTP service URL using a URL of a response header for a DDD requestaccording to an embodiment of the present invention.

As described above, the PD may multicast a discovery message foradvertising itself, or transmit a response message corresponding to thereceived M-SEARCH message to the CD. The CD app may obtain a URL fromthe LOCATION header of the multicast discovery message or the responsemessage for the M-SEARCH message. This URL is intended to acquire a DDD.The CD app may send an HTTP GET request to the URL. These procedurest423010 and t423020 may be the same as those of the previous embodiment.

Here, a response message may be received in response to the HTTP GETrequest. In the previous embodiment, the address information isdelivered through the DDD in the body of the response message or theresponse message header. In this embodiment, a URL for acquiring theaddress information may be delivered through the response messageheader. In this case, the body of the response message may remain emptyand thus carry no information, or may include the DDD.

The CD app may send the HTTP GET request to a URL for the receivedaddress information to request the address information. The PD may senda response message to the CD app. The address information may bedelivered to the CD through the response message (t423030). The addressinformation may be delivered through the body of the response message.According to an embodiment, the address information may be deliveredthrough the header of the response message.

FIG. 104 is a diagram illustrating formats of a GET request and aresponse message according to the request in a discovery procedure for aWebsocket endpoint or an HTTP service URL using a URL of a responseheader for a DDD request according to an embodiment of the presentinvention.

As described above, a CD app may request a DDD using HTTP GET. In thiscase, the GET message may be configured as in the illustrated examplet424010. The DDD request message using GET may be transmitted to the URLof the DDD acquired from the PD. The GET message may be the same as amessage according to the previous embodiment.

The response message may be received according to the HTTP GET message.The response message may have a format as shown in the illustratedexample t424020. The response message may include URL informationcapable of acquiring address information in addition to the informationof the basic 200 OK message. This URL information may be intended toacquire the address of a Websocket endpoint or information for acquiringthe address of an HTTP service URL. Alternatively, the URL may beintended to acquire both addresses. In the illustrated format, URLinformation for acquiring the address of a Websocket endpoint isincluded.

The CD app may send a request for address information to a URL intendedfor address information using HTTP GET. The GET message used at thistime may be configured as in the illustrated example t424030. In thiscase, a request message using GET may be transmitted to the URI of theaddress information acquired from the PD. In addition, the hostinformation about the IP address/port of the description may be used. Inaddition, a language preferred by the control point may be used.

For example, when the URL for acquiring address information isconfigured as http://192.168.1.10:8080/WSEndpoints (assuming Websocket),a GET message using the URL may be configured as in the example t424040.

Thereafter, a response message according to the request message for theaddress information may be returned as described above. The responsemessage may include address information. The address information mayindicate the address of a Websocket endpoint or an HTTP service URL.

FIG. 105 is a diagram illustrating the format of a response message fordelivering address information in a discovery procedure for a Websocketendpoint or an HTTP service URL using a URL of a response header for aDDD request according to another embodiment of the present invention.

In Websocket-based architecture example #1 described above, a responsemessage format according to the illustrated example t425010 may be used.

As shown in the figure, address information about endpoints such as theService/Content Identification Endpoint and the ESG Information Endpointmay be included in the message. As the message format is used forWebsocket-based architecture example #1, addresses of the respectiveendpoints may be listed.

The message format according to the illustrated example t425010 may alsobe used for HTTP-based architecture example #1 described above. In thiscase, the address information about the respective Websocket endpointsmay be replaced by URL address information about corresponding serviceURLs. Thereby, element names may be changed. Similarly, as the messageformat is used for HTTP-based architecture example #1, addresses ofrespective service URLs may be listed.

In Websocket-based architecture example #2 described above, a messageformat according to the illustrated example t425020 may be used.

The message format according to the illustrated example t425020 may alsobe used for HTTP-based architecture example #2 described above. In thiscase, the address information about the Websocket companion endpoint maybe replaced by address information about a companion service URL.Thereby, element names may be changed. Similarly, as the message formatis used for HTTP-based architecture example #2, only address informationabout the companion service URL may be included.

In the aforementioned Websocket-based architecture example #3, a messageformat according to the illustrated example t425030 may be used.

The message format according to the illustrated embodiment t425030 mayinclude address information about n Websocket endpoints. For example,address information about a companion endpoint performing functions suchas Service/Content identification and ESG information delivery andaddress information about an ApptoApp communication endpoint may beincluded in the message format.

While the formats are illustrated as including address information inthe additionalData element, the message may also include otherinformation according to embodiments. Herein, the structure and form ofthe message including the address information may vary according toembodiments.

FIG. 106 is a diagram illustrating a Websocket-based handshake &connection procedure according to an embodiment of the present invention(after discovery).

As described above, the PD may serve as a Websocket server, and the CDmay correspond to a Websocket client. The PD may include a Websocketserver and/or a companion service module. The companion service modulemay provide information which is necessary for a companion device in theTV receiver or the like, or perform overall management related tocompanion services. The companion service module may be a hardwaremodule.

The Websocket server of the PD may provide Websocket endpoints. An appwhich is usable by a web browser of the CD may be in execution. The webbrowser may also provide a Websocket client.

First, the companion service module of the PD may request the Websocketserver to generate a Websocket endpoint t426010. For example, a requestin the Java format such as @ServerEndpoint (“/WS_AA”) may be delivered.Herein, “/WS_AA” may refer to a relevant URL. A Websocket endpoint maybe generated in the Websocket server in this procedure.

The CD app may call an API for creation of a Websocket object (t426020).The API, which is called newWebsocket, may have the address of aWebsocket endpoint as a variable. For example, ex_websocket may bedefined in the form ofex_websocket=newWebSocket(ws://192.168.1.11:8080/WS_AA). A Websocketobject may be created in the CD through this procedure. Herein,handshake may be performed between the endpoint of the Websocket serverof the PD and the Websocket object of the CD (t426030).

The CD app may call API for adding OpenEventHandler (t426040). This APImay be WebSocketObject.onopen( ) For example, a handler may be added inthe form of ex_websocket.onopen( . . . ). In this procedure, theWebsocket server may be connected to a client (t426050). The Websocketclient may inform the CD app of establishment of connection (t426060).

FIG. 107 is a diagram illustrating a handshake & connection procedurefor Websocket-based app-to-app communication according to an embodimentof the present invention (after discovery).

In the Websocket-based architecture, app-to-app communication may beperformed between an app which is being executed in the PD and an appwhich is being executed in the CD. As described above, once the PD appis connected to the Websocket server, and the CD app is also connectedto the Websocket server, the Websocket server may relay messages anddata between the apps.

First, the PD app may call an API for creation of a new Websocket objectfrom a Websocket client in the PD. The aforementioned newWebsocket APImay be used. For example, the API may be used in the form oflocal_websocket=new WebSocket(ws://localhost:8080/ApptoApp). In thisprocedure, a Websocket object for the PD app may be created.

The companion service module in the PD may call an API from theWebsocket server in order to create a Websocket endpoint (t427020,t427030). This procedure may be performed as described above. In thiscase, an endpoint for app-to-app communication needs to be created, andaccordingly a URL (e.g., /ApptoApp) related to app-to-app communicationmay be used. Thereafter, a local Websocket client of the PD and theWebsocket server may perform the handshake procedure (t427040).

The CD app may also create a Websocket object (t427050). This proceduremay be performed as described above. In this case, since the Websocketobject is intended for app-to-app communication, the Websocket objectmay be defined in the form of, for example,remote_websocket=newWebSocket(ws://192.168.1.11:8080/ApptoApp).Thereafter, the Websocket server of the PD and the Websocket object ofthe CD may perform the handshake procedure (t427060).

The Websocket cliente of the PD and the Websocket client of the CD maycall an API to add OpenEventHandler (t427091, t427090). These proceduremay be performed as described above. Thereby, each Websocket client maybe connected to the Websocket server (t427070, t427100). Once connectionis established, each Websocket client may announce establishment ofconnection to the respective apps through an event (t427080, t427110).

Once the aforementioned procedures are completed, the CD app and the PDapp may communicate with each other (t427120). A message may bedelivered from one app to the other app via the Websocket server. Thatis, the Websocket server may relay a message from one client to theother client. This 2-way communication procedure will be described indetail later.

FIG. 108 is a diagram illustrating a Websocket-based 2-way communicationprocedure according to an embodiment of the present invention (afterconnection).

It is assumed that a CD app and the Websocket server in the PD areconnected through the aforementioned procedures (t428010). As describedabove, the Websocket client may inform the CD app of establishment ofthe connection (t428020).

The companion service module may call an API in order to receive amessage (t428030). For example, an API such as @OnMessage in the Javaformat may be used. Thereby, the Websocket server may be ready toreceive a message (Ready to receive).

The CD app may call an API for adding MessageEventHandler (t428040). Forexample, an API such as WebSocketObject.onmessage( ) may be called. Foran object such as ex_websocket of the previous example, the API may becalled in the form of ex_websocket.onmessage( . . . ). Through thisprocedure, the Websocket client of the CD may be ready totransmit/receive a message.

The CD app may call an API for sending a message (t428050). For example,an API such as WebSocketObject.send(message1) may be called. For anobject such as ex_websocket of the previous example, the API may becalled in the form of ex_websocket.send(message1). Thereby, a message(message 1) may be delivered to the Websocket server (t428060).

The Websocket server may relay the received message (message 1) to thecompanion service module (t428070). The companion service module maydeliver a message (message 2) in response (t428080, t428090, t428100).The companion service module may call an API for sending a message(t428080). To transmit text or an object in JSON format, a Java API suchas session.getBasicRemote( ).sendText(message2) orsession.getBasicRemote( ).sendObject(message2) may be called.

FIG. 109 is a diagram illustrating a Websocket-based app to app 2-waycommunication procedure according to an embodiment of the presentinvention (after connection/CD to PD).

It is assumed that a CD app, the Websocket server of the PD and an appwhich is being executed in the PD are connected. The respective apps mayhave been informed of establishment of connection by the Websocketclient through an event.

As described above, the companion service module may call an API forreceiving a message. Thereby, the Websocket server may be ready toreceive a message (t429030). The PD app may call an API in order to addMessageEventHandler, and the Websocket client of the PD may also beready to receive a message (t429040). The CD app may also call an API inorder to make the Websocket client ready to receive the message(t429020). Details of the procedure have been described above.

The CD app may call an API in order to send a message (t429050). ThisAPI is the aforementioned API and may be used in the form of, forexample, remote_websocket.send(message1). Thereby, the message may bedelivered to the Websocket server (t429060). The Websocket server mayrelay the message (message 1) to the companion service module (t429070).

To deliver the message to the local Websocket client of the PD, thecompanion service module may search for a local Websocket session. Whenthe companion service module discovers the local Websocket session, themodule may call an API in order to deliver the message (message 1)(t429080). In this case, a Java API such as session.getBasicRemote().sendText(message1) or session.getBasicRemote( ).sendObject(message1)may be called in order to transmit text or an object in JSON format.

The Websocket server may relay the message (message 1) to the Websocketclient (t429090), and the Websocket client may in turn relay the messageto the PD app (t429100).

FIG. 110 is a diagram illustrating a Websocket-based app to app 2-waycommunication procedure according to an embodiment of the presentinvention (after connection/PD to CD).

It is assumed that a CD app, the Websocket server of the PD and an appwhich is being executed in the PD are connected. The respective apps mayhave been informed of establishment of connection by the Websocketclient through an event.

The Websocket server and the respective Websocket clients may be readyto transmit/receive a message in the same procedure as described above.

The PD app may call an API in order to send a message (t430010). ThisAPI may be the aforementioned API and may be used in the form of, forexample, local_websocket.send(message2). Thereby, the message may bedelivered to the Websocket server (t430020). The Websocket server mayrelay the message (message 2) to the companion service module (t430030).

The companion service module may search for a remote Websocket sessionto deliver the message to a remote Websocket client of the CD. When thecompanion service module discovers the remote Websocket session, themodel may call an API in order to deliver the message (message 2)(t430040). In this case, a Java API such as session.getBasicRemote().sendText(message2) or session.getBasicRemote( ).sendObject(message2)may be called in order to transmit text or an object in JSON format.

The Websocket server may relay the message (message 2) to the Websocketclient (t430050), and the Websocket client may in turn relay the messageto the CD app (t430060).

FIG. 111 is a diagram illustrating an HTTP-based Request-Responseprocedure according to an embodiment of the present invention (afterdiscovery).

It is assumed that all the HTTP service URLs have been discoveredthrough the aforementioned discovery procedure of the HTTP-basedarchitecture (t431010).

The CD app may call an API from the HTTP client in order to send amessage request (t431020). The HTTP client may send the message requestto a proper URL according to the request among HTTP service URLs whichare recognized in the discovery procedure (t431030). Alternatively, themessage request may be sent to one companion service URL according tothe previous embodiment. In this case, the content of the request may beidentified by, for example, a query term of the request.

The HTTP server may relay a request message to the companion servicemodel in the PD (t431040). The companion service module may call an APIin order to relay the request message (message 1) to the CD (t431050).

Thereby, the HTTP server may relay the message (message 1) to the HTTPclient (t431060), and the HTTP client may relay the message to the CDapp (t431070).

FIG. 112 illustrates conversion of an ESGData state variable in XMLformat into an ESGData state variable in JSON format according toanother embodiment of the present invention.

A broadcast reception apparatus according to an embodiment of thepresent invention may employ various protocols including HTTP (HypertextTransfer Protocol), RTP (Real-time Transport Protocol), XMPP (ExtensibleMessaging and Presence Protocol), FTP (File Transfer Protocol) andWebSocket to deliver various kinds of information through a message usedin device-to-device communication to serve various purposes.

In delivering a message used in device-to-device communication throughthe aforementioned various protocols, a broadcast reception apparatusaccording to an embodiment of the present invention may deliver data ofvarious types (string, integer, floating point, Boolean, character,array, list, etc.) defined in the respective protocols. The broadcastreception apparatus may employ a Markup scheme such as XML (ExtensibleMarkup Language), HTML (Hypertext Markup Language), XHTML (ExtensibleHypertext Markup Language) and JSON (JavaScript Object Notation), text,or an image format to more structurally express, deliver and store datacontaining complex content, and is not limited to specific schemes.

Hereinafter, a description will be given of a method for the broadcastreception apparatus to deliver a message (e.g., a state variable)containing the ESG data to a companion device using a Websocketprotocol. In this case, the broadcast reception apparatus may convert anESGData state variable containing the ESG data into an ESGData statevariable in JSON format and deliver the ESGData state variable in JSONformat to a companion screen device using the WebSocket protocol.

FIG. 112(a) illustrates an embodiment of setting the aforementioned ESGdata in the ESGData state variable in XML format (or XML datastructure). Details of the ESGData state variable are the same asdescribed above.

Referring to FIG. 112(b), the ESGData state variable in XML format ofFIG. 112(a) may be converted into an ESGData state variable in JSONformat (or JSON format). Details of the ESGData state variable in JSONformat are the same as those of the ESGData state variable in XMLformat.

As such, all data in XML format (XML data structure) may be convertedinto data in JSON format. The data in JSON format may be referred to asa JSON object. The JSON object may be delivered to a companion device inthe broadcast reception apparatus (e.g., the primary device) through theWebsocket protocol.

FIG. 113 is a diagram illustrating a procedure of delivering an ESGDatastate variable in JSON format to a companion device using the Websocketprotocol according to another embodiment of the present invention.

The illustrated CD (Companion Device) may refer to a companion device,and the PD (Primary Device) may refer to a receiver or a broadcastreception apparatus.

The companion device may create a Websocket Object by calling aWebsocket API using the following syntax (C58003).

[Construct WebSocket Object]

Websocketobjectname=new WebSocket(Websocket address)

Ex) WS_ESG=new WebSocket(“ws://Tvhost:8080/ESGServer”)

Herein, the name of the created Websocket object may be “WS_ESG”, thecalled Websocket API may be “new WebSocket” for creation of a newWebsocket, and the address of the Websocket server may be“ws://Tvhost:8080/ESGServer”.

Then, the companion device may open Websocket connection by calling aWebsocket API using the following syntax (C58005).

[Open a Websocket connection]

Ex) WS_ESG.onopen=function {˜˜˜}

Herein, “WS_ESG.onopen” may be an opening event handler for opening aWebsocket. The term “function {˜˜˜}” may be a Websocket API for openingWebsocket connection.

In this state (C58010), the ESGData state variable of the broadcastreception apparatus may have no value.

The service/content provider may transmit ESG data over a broadcastnetwork or a broadband channel (C58020). The ESG data may be receivedthrough a reception unit or a network interface. Herein, the receptionunit may be the aforementioned broadcast interface or tuner.

The broadcast reception apparatus may signal the received ESG data(C58030).

Then, the broadcast reception apparatus and the companion device mayopen Websocket connection to each other (C58035).

Websocket connection may be opened in the same manner as describedabove. For example, an application processor (not shown) included in thebroadcast reception apparatus may send a request for connection to thecompanion device to a network processor (not shown). Thereafter, thenetwork processor may receive the connection request from the companiondevice. The network processor may search for a connection request of amatching application processor based on the information received fromthe companion device. Once the network processor retrieves a matchingconnection request, the network processor may connect the companiondevice with the application processor of the broadcast receptionapparatus. Herein, the application processor may be an applicationmodule or an application browser. The network processor may be theWebsocket server.

Once Websocket connection between the broadcast reception apparatus andthe companion device opens, the broadcast reception apparatus is allowedto transmit and/or receive a message to and/or from the companiondevice.

Then, the companion device may transmit and/or receive various messagesto and/or from the broadcast reception apparatus using the followingevent handler (C58037).

For example, the event handler may include a Message Event Handler, anError Event Handler, and/or a Close Event Handler.

Herein, the Message Event Handler is an event handler for transmittingand/or receiving messages between the broadcast reception apparatus andthe companion screen, and has the following syntax.

[Message Event Handler]

EX) WS_ESG.onmessage=function {˜˜˜}

The Error Event Handler may be an event handler for transmitting and/orreceiving messages related to errors in the Websocket connection,broadcast reception apparatus and/or companion device and, has thefollowing syntax.

[Error Event Handler]

EX) WS_ESG.onerror=function {˜˜˜}

The Close Event Handler is an event handler for closing Websocketconnection and has the following syntax.

[Close Event Handler]

EX) WS_ESG.onclose=function {˜˜˜}

Then, the broadcast reception apparatus may store (or set) the ESG datain the ESGData state variable (C58040).

For example, the ESGData state variable may be in either XML format orJSON format. If the broadcast reception apparatus sets the ESG data inthe ESGData state variable in XML format, the broadcast receptionapparatus may convert the state variable in XML format into a statevariable in JSON format.

Then, the broadcast reception apparatus may deliver a JSON object of theESGData state variable to the companion device through the Websocketprotocol (C58050).

Upon receiving the ESGData state variable, the companion device mayparse the state variable (C58060), and then expose the ESG data throughthe UI according to the parsed value (C56070).

At this time, to show the ESG data to the user, the companion device mayexpress the UI at the native level or in an application.

There may be various embodiments of expressing the ESG data in thecompanion device. According to an embodiment, upon receiving the ESGdata, the companion device may immediately exposes the ESG data to theuser in any form. According to an embodiment, upon receiving the ESGdata, the companion device may send a notification message to the user,and may expose the ESG data when the user executes the ESG data.According to an embodiment, upon receiving the ESG data, the companiondevice may hold the ESG information in the background, and may exposethe ESG data to the user only when the user executes an application fordisplaying the ESG data.

FIG. 114 is a diagram illustrating a service/content identificationmessage format according to an embodiment of the present invention.

The present invention proposes a scheme in which a broadcast receiver(TV receiver or PD) provides various data to a CD in a next-generationhybrid broadcast environment based on a linkage between a terrestrialbroadcast network and IP network. Here, the CD or a CD-side applicationexecuted on a CD side may communicate with a PD side.

In this data provision architecture, the PD and the CD may exchangevarious types of data. In such data provision, it is possible to utilizea service of the above-described WebSocket end points, a serviceprovided by an HTTP service URL, etc. The service mentioned hereinrefers to a companion service between the PD and the CD, and correspondsto a different concept from that of a broadcast service.

For example, the PD may deliver, to the CD, information about abroadcast service (channel) or content (a program of a channel) which iscurrently provided or can be provided in the future in the PD. Inaddition, the PD may deliver an ESG or an emergency alert message (EAM)to the CD. According to a given embodiment, the PD may deliver, to theCD, playback state information of a service during playback or timelineinformation of the PD.

Here, the EAM is an alert message for reporting an emergency situationor a disastrous emergency situation. The EAM may be received by the PDand delivered to the CD side. Here, the playback state information mayrefer to information about a playback speed, fast forward, rewind, etc.for a service such as a broadcast service, etc. provided by the PD. Thetimeline information may include media time information and/or a UTCabsolute time pair for the service such as the broadcast service, etc.provided by the PD.

As described in the foregoing, the present invention proposesarchitecture for supporting communication between the PD and the CDbased on an HTTP request/response simultaneously with supportingcommunication between the PD and the CD based on WebSocket. Here, acommunication scheme according to WebSocket or HTTP may be selecteddepending on attributes of respective companion services. In thisregard, the present invention may allow a flexible architectureconfiguration and ensure efficiency in communication between the PD andthe CD.

In an embodiment of the present invention, WebSocket-based communicationmay be in charge of communication associated with service/contentidentification and communication associated with delivery of a playbackstate. At the same time, communication by a web server based on HTTP maybe in charge of communication associated with delivery of an ESG andcommunication associated with delivery of service/show/segment-relateddata. Communication associated with delivery of media timelineinformation may be performed by both WebSocket and HTTP. In addition, incommunication associated with service/content identification, aservice/content for a currently broadcast service may be identified byHTTP-based communication.

A description will be given of communication associated withservice/content identification. The broadcast receiver has directlyprovided an additional service for the broadcast service, etc. In thiscase, when a user attempts to execute enhancement services related tobroadcast services, which includes identifying content or checkingadditional information while viewing a program, there may be a problemin which related information covers the broadcast program. The presentinvention may provide the additional information without hinderingviewing, and by using CD's more convenient UI by allowing the additionalservice to be displayed on the CD of the user.

Further, the present invention proposes a protocol and PD-CDarchitecture for solving the above-mentioned problem, a service/contentidentification message format delivered to the CD, etc. In addition, thepresent invention proposes a scheme in which a CD or a CD-sideapplication accesses a service/content which is being provided or can beprovided in the PD using the service/content identification message. Inthis way, the CD may acquire information about the broadcastservice/content in advance, and thus the additional service may beefficiently provided. In addition, the present invention proposes ascheme of enabling the CD side to efficiently acquire information abouta service/content by configuring a hierarchical location URL structurein the service/content identification message. Further, the presentinvention proposes a scheme of enabling the above-described process tobe efficiently performed using both WebSocket and HTTP. In this way, theadditional service may be provided without hindering viewing of theservice/content of the PD, and in more convenient way. In addition, inthis way, it is possible to perform preprocessing such that the CD sidemay acquire and reproduce the service/content, acquire and provideadditional information/services related to the service/content, orefficiently perform an additional service related to theservice/content.

In an embodiment of the present invention, the PD may deliver theservice/content identification message to the CD or the CD-sideapplication. First, WebSocket connection may be established in adiscovery process. This process has been described above. A WebSocketserver of the PD may receive a subscription message of a companionservice for receiving the service/content identification message fromthe CD-side application. The CD-side application may have subscribed tothe companion service. This companion service may be renewed orsubscription of the companion service may be canceled. This companionservice may be referred to as an ESG service.

When the information related to the service/content is changed, theWebSocket server may deliver the service/content identification messageto the CD-side application. This service/content identification messagemay correspond to a type of notification message. This notificationmessage may have a message body together with information that indicatesa companion service associated with the notification message. In thiscase, the message body may include information corresponding to theservice/content identification message. The CD-side application mayacquire this information to perform a necessary additional operation.

The CD-side application may receive the service/content identificationmessage through WebSocket connection, and receive the information aboutthe service/content currently provided in the PD using HTTP. Thisprocess may be performed by an HTTP GET message and an HTTP responseaccording to the message. The CD-side application may transmit the HTTPGET message for an HTTP service URL for service/content identificationof a web server of the PD or the web server. The web server of the PDmay transmit a response message to the CD-side application. Here, theresponse message may include information related to the service/content.

Delivery of the information related to the service/content by WebSocketdescribed above refers to delivery of information related to the wholeservice/content which is being provided or can be provided in the PD,and may correspond to delivery of comprehensive information in the formof a notification. On the other hand, delivery of the informationrelated to the service/content by HTTP described above refers todelivery of information related to the service/content which is beingprovided in the PD, and may be performed in response to a request fromthe CD-side application.

Delivery by WebSocket is delivery of comprehensive and overallinformation. When there is a great change, for example, when the ESG isupdated, information about this change may be provided to the CD sidethrough this delivery, without CD's requests, such that theservice/content can be efficiently checked. In this case, a scheme suchas WebSocket may be more appropriate, and thus the PD of the presentinvention which supports both WebSocket and HTTP may utilize thisinformation delivery using WebSocket. In addition, when the CD sideneeds to acquire information about a service/content currentlyreproduced on the PD side, delivery by HTTP allows the information to beeasily acquired by a request/response. In this case, a request/responsescheme by HTTP GET, etc. is more appropriate, and thus the PD of thepresent invention may use HTTP. The CD side may receive theservice/content identification message by WebSocket, and thenadditionally receive an HTTP response message for a currentservice/content as necessary.

A description will be given of the service/content identificationmessage in delivery by WebSocket. The service/content identificationmessage may include ESG information or include information which isacquired from the ESG and processed. In addition, according to a givenembodiment, the service/content identification message may use aninformation structure of the ESG

An embodiment of the illustrated service/content identification messagemay include a Service element and/or a Content element. At least one(one to N) Service element may be included, and at least zero (zero toN) Content elements may be included.

The Service element may describe information about the broadcast serviceof the PD. Here, the information about the service may be brought froman ESG data model. The Service element may include an id element, aSerivceType element, a Name element, a Description element and/or aTargetUserProfile element.

The id element may indicate an ID of the service. The SerivceTypeelement may indicate a service type of the service. The Name element mayindicate a name of the service. The Description element may includedescription of the service. The TargetUserProfile element may indicate auser profile targeted by the service.

The Content element may describe information about content of the PD.Here, when the broadcast service corresponds to a channel, the contentmay refer to a program. The Content element may include a Programidelement, a Name element, a Description element, a TargetUserProfileelement, a CARatings element, a Capabilities element, a Componentelement, a FileContentItem element, a TimelineInfo element and/or aLocation element.

The Programid element, the Name element, the Description element, theTargetUserProfile element may include an ID, a name, a description, andtarget user profile information of the content, respectively. TheCARatings element may include content advisory information of thecontent. The Capabilities element may indicate capability informationrelated to the content. Here, the capability information may benecessary to meaningfully reproduce the content.

The Component element may include information related to a componentwhich is included in the content. Here, the Component element mayinclude information related to a continuous component of the content.Here, the continuous component may refer to a presentable component.According to a given embodiment, an audio/video/captioning component,etc. may correspond to the continuous component. According to a givenembodiment, an application-based enhancement component, an applicationcomponent, etc. correspond to the continuous component. A plurality ofComponent elements may be present, and each of the Component elementsmay further include @componentType, @componentRole, @componentNameand/or @componentLocation attributes.

The @componentType attribute may indicate a type of the component. Forexample, when the attribute has values of 0, 1, 2, and 3, the componentmay have audio component, video component, closed captioning component,and application component types, respectively. Remaining values may bereserved for future use.

The @componentRole attribute may indicate a role or a type of thecomponent. The @componentName attribute may indicate a name of thecomponent. Here, the name may be a human-readable name. The@componentLocation attribute may include URL information for accessingthe component. The CD-side application may acquire the component throughthis URL.

The FileContentItem element may include information related to a filecontent item included in the content. Here, FileContentItem element mayinclude additional information (Adjuct Data) of the content. Here, theadditional information may include various types of information.According to a given embodiment, the application-based enhancementcomponent, the application component, etc. may correspond to the varioustypes of information. A plurality of FileContentItem elements may bepresent, and the FileContentItem element may be omitted. TheFileContentItem element may include @FileContentItemLocation,@FileContentItemName, @FileContentItemID, @FileContentItemType and/or@FileContentItemEncoding attributes.

The @FileContentItemLocation attribute may include URL information foraccessing a corresponding file component item. The CD-side applicationmay acquire the file component item through this URL.

The @FileContentItemName attribute may indicate a human-readable name ofthe file component item. The @FileContentItemID attribute may indicatean ID of the file component item. The @FileContentItemType attribute mayindicate a type of the file component item. The @FileContentItemEncodingattribute may indicate an encoding scheme of the file component item.

The TimelineInfo element may include timeline-related information of thecontent. The timeline information may be delivered by HTTP GET ordelivered by a separate WebSocket service. Alternatively, the timelineinformation may be included in the service/content identificationmessage and delivered. The TimelineInfo element may further include acurrentTime element. The currentTime element may indicate current timeinformation of the content.

The Location element may include URL information for accessing thecorresponding content. The CD-side application may acquire the contentthrough this URL. This element may correspond to URL information foraccessing the whole content unlike the above-described URL information.According to a given embodiment, when a request for acquisition istransmitted using the URL information of this element, only a necessarycomponent or file content item may be acquired by adding a query term.

The service/content identification message may further include a Showelement and a Segment element. For each of the Show element and theSegment element, the above-described elements/attributes included in theService element and the Content element may be defined. In addition, theservice/content identification message may further include informationfor reporting information about a portion of a Service, a Show, aSegment, or Content currently reproduced by the PD based on the Service,the Show, the Segment, or the Content.

According to a given embodiment, the service/content identificationmessage may further include a logo, other ESG information, andcharacteristics (a size, a codec, a bit rate, an aspect ratio, andrequired/desired capability) of each of the service, the content, etc.In addition, the service/content identification message may furtherinclude filtering criteria information for determining whether each ofthe service, the content, etc. meets a particular individualizationcriterion.

According to a given embodiment, a URL of the above-described locationinformation may be a URL of the PD (or a server of the PD) for acquiringcorresponding information from the PD, a URL of the Internet for directacquisition from the Internet, or a URL of an arbitrary remote server.According to a given embodiment, the service/content identificationmessage may further include information that indicates whether it ispossible to subscribe to each of a service, content, etc. to receiveeach of the service, the content, etc., or whether each of the service,the content, etc. corresponds to a one-off.

A description will be given of an HTTP response message for deliveringinformation related to a current service/content in delivery by HTTP.

As described in the foregoing, the CD-side application may transmit anHTTP GET message to an HTTP-based web server of the PD. The HTTP GETmessage may be requested by service URL information of the companionservice. The HTTP GET message may include service URL information andinformation for identifying the companion service (companion service foracquiring information related to the current service/content). The HTTPGET message may further include a query term, and requested informationmay be identified through this query term.

The CD-side application may request information about a service/contentcurrently provided by the PD through the HTTP response message. Examplesof the requested information about the service/content may include ESGinformation of a current show, currently available componentinformation, a currently available file or NRT data, and/or currenttimeline location information, etc.

The PD or the web server of the PD may deliver the requested informationto the CD-side application through the HTTP response message. The HTTPresponse message may include the requested information, or may notinclude the requested information when there is no requestedinformation. In addition, the HTTP response message may further includeinformation that indicates whether the requested information isincluded. Here, the requested and delivered information may correspondto the above-described information of the service/content identificationmessage. For example, the ESG information may correspond to the id,Name, Description, and CAratings elements among the Service element, thesub-elements of the Service element, the Content element, and thesub-elements of the Content element described above. In addition, thecomponent information may correspond to the Component element and thesub-elements of the Component element described above. Information aboutthe file or the NRT data may correspond to the FileContentItem elementand the sub-elements of the FileContentItem element described above.Further, the timeline location information may correspond to theTimelineInfo element and the sub-elements of the FileContentItem elementdescribed above.

FIG. 115 is a diagram illustrating a method of providing a broadcastservice in a PD according to an embodiment of the present invention.

The method of providing the broadcast service in the PD according to theembodiment of the present invention may include receiving a broadcastsignal, processing the broadcast signal to output an SLT and ROUTEpackets, parsing the SLT, acquiring SLS, and/or acquiring streamingcomponents and application components.

First, a receiving module of a broadcast receiver (PD) may receive thebroadcast signal. Here, the receiving module may refer to a tuner or awhole receiving unit that receives the broadcast signal.

A first processing module of the PD may process the broadcast signal tooutput the SLT and the ROUTE packets. The first processing module may bea hardware module that manages a physical layer, a link layer, an IPlayer, and a UDP layer. Here, the first processing module may besubdivided into hardware modules that manage the respective layers.According to a given embodiment, the whole hardware modules may beregarded as one hardware module referred to as the first processingmodule.

A second processing module of the PD may parse the SLT which includesbootstrap information. The bootstrap information may indicate a ROUTEsession that delivers the SLS. The bootstrap information has beendescribed above. The SLS may signal service data of a particularbroadcast service. The service data of the particular broadcast servicemay include streaming components and application components. Thestreaming components may refer to audio/video/closed captioningcomponents, etc., and the application components may refer to anapplication-based enhancement component, etc. Here, theapplication-based enhancement component may be delivered as an NRTservice component. Here, the second processing module may be a hardwaremodule for parsing the SLT and acquiring information.

A third processing module of the PD may access the ROUTE session thatdelivers the SLS to acquire the SLS. Here, the above-described bootstrapinformation may be used. In addition, the third processing module mayacquire the streaming components and the application components usingthe SLS. The components may be acquired by session descriptioninformation such as an S-TSID, etc., or may be acquired from a broadbandnetwork using a base pattern of a USBD, etc. The application componentsmay include data related to application-based enhancement of a broadcastservice. The application-based enhancement may refer to theabove-described application-based enhancement service.

In a method of providing the broadcast service in the PD according toanother embodiment of the present invention, the SLS may include a USBD,an S-TSID, and/or an MPD, and the USBD may provide reference informationof the S-TSID and reference information of the MPD. As described in theforegoing, the USBD may include URI information that references theS-TSID and the MPD. The S-TSID may provide component acquisitioninformation for the streaming components and the application components.The receiver may acquire components for the broadcast service using thiscomponent acquisition information. Here, the application components maycorrespond to NRT components. The MPD may provide a reproductiondescription for the streaming components.

In a method of providing the broadcast service in the PD according toanother embodiment of the present invention, the SLS may further includean AST for signaling applications of the application-based enhancement.As described in the foregoing, the AST may be delivered together withother SLS fragments through the transmission session in which the SLS isdelivered. The AST may include information that describes theapplication components. The information that describes the applicationcomponents may correspond to the Content Item information/element of theAST described above. The AST has been described above.

The MPD may include an event stream element in a Period element. Theevent stream element may correspond to an EventStream element. The eventstream element may include static event information. The static eventinformation may correspond to an Event sub-element in the EventStreamelement. The term “static event” may be used since event delivery usingEventStream is generally used for a static (pre-produced or non-live)situation. The static event information may include an event ID andtiming information. Here, the event ID may identify the static event,and the timing information may indicate a start time of the static eventwith reference to a start time of a period (based on the start time ofthe period).

In a method of providing the broadcast service in the PD according toanother embodiment of the present invention, segments of the streamingcomponents may include dynamic event information. As described in theforegoing, representation, that is, the streaming components may havemedia segments (DASH segments). In a dynamic situation (live situation),events may be delivered in-band. The respective media segments mayinclude event information therein.

The dynamic event information may include an event ID and timeinformation. Here, the event ID may identify a dynamic event, and thetiming information may indicate a start time of the dynamic event withreference to a start time of the representation (based on the streamingcomponents). The MPD may further include information for signaling thepresence of the dynamic event information in the streaming components.

The method of providing the broadcast service in the PD according to theother embodiment of the present invention may further include deliveringa WebSocket end point location to a CD application being executed in theCD by a companion module of the PD to perform a discovery process. Inaddition, the method may further include establishing WebSocketconnection using the WebSocket end point location by a WebSocket serverof the PD.

In the discovery process, a first URL used as an HTTP server end pointof the PD and a second URL used as a WebSocket server end point of thePD may be delivered to the CD application. This discovery process may beas described above. Here, it is presumed that the CD application has notbeen executed (launched) by the PD. The CD may multicast an M-SEARCHmessage. The PD receiving this message may respond with a 200 OKmessage. A header of the 200 OK message may include LOCATION URLinformation of the PD.

A CD-side application may request device description from this locationURL. This request may be performed using an HTTP GET method. The PD orthe companion module of the PD receiving this request may transmit afirst response message to the CD-side application. Here, the firstresponse message may include the first URL in a header thereof. Thefirst URL may be used as an end point of a web server provided by thePD. Here, the end point of the web server may refer to a service URLprovided by the above-described web server. The first URL may correspondto a companion service URL used in the above-described HTTP-basedarchitecture. According to a given embodiment, each service URL may bepresent according to each function. In this case, the first URL maycorrespond to one of several HTTP service URLs.

The companion module of the PD may receive a request for applicationinformation from the CD application. The CD-side application may requestthe application information from the first URL. The companion module maytransmit a second response message in response to the request. Thesecond response message may include second URL information in a responsemessage body. The second URL may be used as an end point of theWebSocket server provided by the PD. Here, the second URL correspondingto address information of a WebSocket end point may be a companionWebSocket end point or an application-to-application WebSocket endpoint.

Among the above-described embodiments, the present embodiment maycorrespond to the embodiment in which both the HTTP-based web server andthe WebSocket-based WebSocket server are provided in the PD. Further,the present embodiment may correspond to the embodiment in which onlyone companion service URL is provided as the HTTP service URL, and onecompanion end point and one application-to-application end point areprovided as the WebSocket server end point. Here, a WebSocket companionend point may be an end point that provides a function other thanapplication-to-application communication. Communication between the PDand the CD may be performed by the web server (HTTP) or the WebSocketserver (WebSocket) through division of roles. For example, delivery ofthe ESG may be performed through the web server. In addition, service &content identification, delivery of an EAM and delivery of mediaplayback information may be performed through the WebSocket server.Media timeline information may be delivered through the web server orthe WebSocket server.

Thereafter, the companion module of the PD may establish WebSocketconnection between the WebSocket server and the CD application. In thisprocess, the second URL information may be used. A method ofestablishing WebSocket connection (session) has been described above indetail. Here, WebSocket connection may be WebSocket connection forinterconnecting a PD-side application and the CD-side application forapplication-to-application communication, or may be WebSocket connectionfor exchanging information between the PD and the CD-side application.

The method of providing the broadcast service in the PD according to theother embodiment of the present invention may further include deliveringa service identification message to the CD application using WebSocketconnection by the WebSocket server. Here, the WebSocket server may referto a hardware module or a processor which performs an operationcorresponding to the above-described WebSocket server. Here, the serviceidentification message may refer to the above-described service/contentidentification message. The service identification message may includecomponent URLs for accessing components of the broadcast service. TheURLs may correspond to the Location element, the @componentLocationattribute, and the @FileContentItemLocation attribute described above.

The receiving module of the PD may receive ESG information through abroadcast network or a broadband network. Here, the receiving module maycorrespond to a concept including one of or both a tuner for receivingdata through the broadcast network and a network interface for receivingdata through the broadband network. The PD may further include aninternal control module. The internal control module may process an ESGwhen the ESG is received, and generate a service/content identificationmessage.

The WebSocket server of the PD may receive a subscription message fromthe CD application. The subscription message may correspond to aWebSocket server end point (companion end point) identified by theabove-described second URL. The subscription message may subscribe to acompanion service for receiving a service identification message whichincludes information derived from the ESG The companion service may bereferred to as a service/content identification service or an ESGservice.

The WebSocket server of the PD may deliver the service identificationmessage to the CD application through WebSocket connection. Thisdelivery may be performed in a form of the above-described notificationmessage of the companion service of WebSocket. This notification may beperformed when information corresponding to the service/contentidentification message is changed, for example, when the ESG is changed.Alternatively, this notification may be periodically performed.

In a method of providing the broadcast service in the PD according toanother embodiment of the present invention, the CD application mayacquire the application components using the component URLs. Accordingto a given embodiment, the URLs may correspond to a URL of a serviceprovided in the PD or a URL of an arbitrary remote server. Theapplication components may be acquired from the PD in the former caseand from the server in the latter case.

A description will be given of a method of providing a broadcast servicein the CD according to an embodiment of the present invention. Thismethod is not illustrated in the figure.

The method of providing the broadcast service in the CD according to theembodiment of the present invention may include executing an applicationof the CD by a launcher of the CD, performing a discovery process with aPD using a network interface of the CD by the application of the CD,establishing WebSocket connection with a WebSocket server of the PD bythe application of the CD using a WebSocket client of the CD,transmitting a subscription message for receiving a service/contentidentification message using the WebSocket client of the CD to subscribeto a corresponding service by the CD application, and/or receiving theservice identification message using the WebSocket client of the CD bythe CD application. The discovery process between the CD application andthe PD may be performed by a companion module of the CD. The CDapplication may request a device description using the companion module,request application information from the above-described first URL, andacquire a response to the request. In addition, the method of providingthe broadcast service in the CD may further include providingapplication-based enhancement for a broadcast service which is beingprovided in the PD using AST, EventStream, emsg boxes and/or applicationcomponents acquired from the PD or a broadband by the CD application.

The methods of providing the broadcast service in the CD according tothe embodiments of the present invention may correspond to theabove-described methods of providing the broadcast service in the PDaccording to the embodiments of the present invention. The methods ofproviding the broadcast service in the CD may be performed by hardwaremodules corresponding to the modules used in the methods of providingthe broadcast service in the PD (for example, the companion module, thereceiving module, the internal control module, the web server, theWebSocket server, the first, second, and third processing modules,etc.). The method of providing the broadcast service in the CD may haveembodiments corresponding to the embodiments of the method of providingthe broadcast service in the PD described above.

The above-described steps may be omitted or replaced by other steps forperforming the same/similar operations according to embodiment.

FIG. 116 is a diagram illustrating an apparatus for providing abroadcast service which operates as a PD according to an embodiment ofthe present invention.

The apparatus for providing the broadcast service which operates as thePD according to the embodiment of the present invention may include thecompanion module, the first, second, and third processing modules, thereceiving module, the internal control module, the web server, and/orthe WebSocket server described above. The respective blocks/modules havebeen described above.

The apparatus for providing the broadcast service which operates as thePD according to the embodiment of the present invention and the internalblocks/modules thereof may perform the above-described embodiments ofthe method of providing the broadcast service in the PD of the presentinvention.

A description will be given of an apparatus for providing a broadcastservice which operates as a CD according to an embodiment of the presentinvention. This apparatus is not illustrated in the figure.

The apparatus for providing the broadcast service which operates as theCD according to the embodiment of the present invention may include thelauncher, the companion module, and/or the network interface describedabove. The respective blocks/modules have been described above.

The apparatus for providing the broadcast service which operates as theCD according to the embodiment of the present invention and the internalblocks/modules thereof may perform the above-described embodiments ofthe method of providing the broadcast service in the CD of the presentinvention.

The above-described blocks/modules, etc. inside the apparatus maycorrespond to processors that execute continuous processes stored in amemory or hardware elements positioned inside/outside the apparatusaccording to embodiment.

The above-described modules may be omitted or replaced by other modulesfor performing the same/similar operations according to embodiment.

Modules or units may correspond to processors that execute continuousprocesses stored in a memory (or a storage unit). The respective stepsdescribed in the above-described embodiments may be performed byhardware/processors. The respective modules/blocks/units described inthe above embodiments may operate as hardware/processors. In addition,the methods proposed in the present invention may be executed as codes.These codes may be written in a processor-readable storage medium, andthus may be read by a processor provided by an apparatus.

Even though the respective drawings have been separately described forconvenience of description, embodiments described in the respectivedrawings may be merged into a new embodiment. In addition, designing ofa computer-readable recording medium in which a program for executingthe above-described embodiments according to necessity of a personskilled in the art is within the scope of the present invention.

Referring to the apparatuses and methods according to the presentinvention, configurations and methods of the embodiments are notrestrictively applicable, and all or some of the above-describedembodiments may be selectively combined and configured such that theembodiments can be variously changed

Meanwhile, the methods proposed in the present invention may beimplemented as processor-readable code stored in a processor-readablerecording medium included in a network device. The processor-readablerecording medium includes all types of recording devices in whichprocessor-readable data is stored. Examples of the processor-readablerecording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, afloppy disk, an optical data storage device, etc. In addition, theexamples include a carrier-wave type implementation such as atransmission over the Internet. Furthermore, as the processor-readablerecording medium is distributed to a computer system connected via anetwork, processor-readable code can be saved and executed in adistributed manner.

Further, even though preferred embodiments of the present invention havebeen illustrated and described, the present invention is not restrictedto a certain embodiment described above, and various modifications andvariations can be made by those skilled in the art without departingfrom the subject matter of the present invention as defined by theclaims. Furthermore, these modified embodiments should not be understoodseparately from the spirit or scope of the present invention.

Both apparatus and method inventions are mentioned in this specificationand descriptions of both the apparatus and method inventions may becomplementarily applicable to each other.

It should be understood by those skilled in the art that various changesand modifications can be made in the present invention within the spiritor scope of the present invention. Therefore, the present invention isintended to include changes and modifications of the present inventionwithin the scope of accompanying claims and equivalents thereof.

Both apparatus and method inventions are mentioned in this specificationand descriptions of both the apparatus and method inventions may becomplementarily applicable to each other.

Various embodiments have been described in best modes.

The present invention is used in a series of broadcast signal provisionfields.

It is clear to those skilled in the art that various changes andmodifications can be made in the present invention within the spirit orscope of the present invention. Therefore, the present invention isintended to include changes and modifications of the present inventionwithin the scope of accompanying claims and equivalents thereof.

What is claimed is:
 1. A method of providing a broadcast service, themethod comprising: processing service data for a broadcast service,Service layer Signaling (SLS) for signaling the broadcast service, and asignaling table having bootstrap information for discovery of the SLSfor the broadcast service to output a broadcast signal, wherein thebroadcast service is a linear service with an app-based enhancement oran app-based service; and transmitting the broadcast signal carrying theservice data, the SLS and the signaling table via a broadcast network,wherein the SLS includes a Service-based Transport Session InstanceDescription (S-TSID), a Media Presentation Description (MPD), andapplication-related data, and wherein: the S-TSID includes informationfor indicating transport sessions carrying service components for thebroadcast service, the application-related data of one or moreapplications is associated with the broadcast service, and the MPDincludes a period element having an event stream element that indicatesactions to be taken by the one or more applications, the event streamelement including a plurality of event elements, and each of the eventelements including an event ID for an event and timing information forindicating start time of the event.
 2. The method of claim 1, whereinthe SLS further includes an application table including information forindicating content items used by an application.
 3. The method of claim1, wherein the service components include a segment having an eventelement, the event element including an event ID for an event and timinginformation for indicating start time of the event.
 4. The method ofclaim 3, wherein the MPD further includes information for indicating apresence of the event element in the segment.
 5. An apparatus forproviding a broadcast service, the apparatus comprising: a processorconfigured to process service data for a broadcast service, ServiceLayer Signaling (SLS) for signaling the broadcast service, and asignaling table having bootstrap information for discovery of the SLSfor the broadcast service to output a broadcast signal, wherein thebroadcast service is a linear service with an app-based enhancement oran app-based service; and a tuner configured to transmit the broadcastsignal carrying the service data, the SLS and the signaling table via abroadcast network, wherein the SLS includes a Service-based TransportSession Instance Description (S-TSID), a Media Presentation Description(MPD), and application-related data, and wherein: the S-TSID includesinformation for indicating transport sessions carrying servicecomponents for the broadcast service, the application-related data ofone or more applications is associated with the broadcast service, andthe MPD includes a period element having an event stream element thatindicates actions to be taken by the one or more applications, the eventstream element including a plurality of event elements, and each of theevent elements including an event ID for an event and timing informationfor indicating start time of the event.
 6. The apparatus of claim 5,wherein the SLS further includes an application table includinginformation for indicating content items used by an application.
 7. Theapparatus of claim 5, wherein the service components include a segmenthaving an event element, the event element including an event ID for anevent and timing information for indicating start time of the event. 8.The apparatus of claim 7, wherein the MPD further includes informationfor indicating a presence of the event element in the segment.
 9. Amethod of providing a broadcast service, the method comprising:receiving a broadcast signal including service data, Service LayerSignaling (SLS), and a signaling table for the broadcast service, thatis a linear service with an app-based enhancement or an app-basedservice, via a broadcast network; processing the received broadcastsignal to obtain the signaling table that includes bootstrap informationfor discovery of the SLS for the broadcast service; obtaining the SLS,that includes a Service-based Transport Session Instance Description(S-TSID), a Media Presentation Description (MPD), andapplication-related data of one or more applications, from the receivedbroadcast signal based on the signaling table, wherein: the S-TSIDincludes information for indicating transport sessions carrying servicecomponents for the broadcast service, the application-related data ofone or more applications is associated with the broadcast service, andthe MPD includes a period element having an event stream element thatindicates actions to be taken by the one or more applications, the eventstream element including a plurality of event elements, and each of theevent elements including an event ID for an event and timing informationfor indicating start time of the event; and providing the service databased on the SLS and the one or more applications, wherein a user inputsignal for controlling operation of the one or more applications isreceived so that the operation of the one or more applications isfurther controlled.
 10. The method of claim 9, wherein the SLS furtherincludes an application table including information for indicatingcontent items used by an application.
 11. The method of claim 9, furthercomprising: synchronizing the operation of the one or more applicationswith the service data.
 12. The method of claim 11, further comprising:providing a notification of the operation of the one or moreapplications.
 13. An apparatus of providing a broadcast service, theapparatus comprising: a tuner configured to receive a broadcast signalincluding service data, Service Layer Signaling (SLS), and a signalingtable for the broadcast service, that is a linear service with anapp-based enhancement or an app-based service, via a broadcast network;a processor configured to process the received broadcast signal toobtain the signaling table that includes bootstrap information fordiscovery of the SLS for the broadcast service, and to obtain the SLS,that includes a Service-based Transport Session Instance Description(S-TSID), and application-related data of one or more applications, fromthe received broadcast signal based on the signaling table, wherein: theS-TSID includes information for indicating transport sessions carryingservice components for the broadcast service, the application-relateddata of one or more applications is associated with the broadcastservice; and a display configured to provide the service data of thebroadcast service based on the SLS and the one or more applications,wherein the apparatus receives a user input signal for controllingoperation of the one or more applications so that the processor furthercontrols the operation of the one or more applications.
 14. Theapparatus of claim 13, wherein the SLS further includes an applicationtable including information for indicating content items used by anapplication.
 15. The apparatus of claim 13, wherein the processorfurther synchronizes the operation of the one or more applications withthe service data.
 16. The apparatus of claim 13, wherein the displayfurther provides a notification of the operation of the one or moreapplications.